1,类型转换的不同 
在javascript中 
空对象和空数组转换为boolean值为true; 
但在php中 
空对象空数组转换为boolean值为false; 
(仅在php4中空对象的boolean值为false) 
包括非0的负数值,都是转换为true; 
2,实形参的不同 
在js中形参和实参的个数对比起来都没有限制,形参个数可以大于实参,也可以少于实参 
而在php中,实参数大于形参不报错,但当实参个数少于形参个数时(并且未指定的形参未定义时就会报错) 
function mao(val1,val2,val3){
}
mao(aa,bb);
此时由于val3未指定实参,会报错 
但当val3初始化一个值时,不报错 
function mao(val1,val2,val3="123"){
}
mao(aa,bb);
js中可以写一个三元表达式来给未赋值的形参给定一个初始值,不可以和php一样在形参列表里面赋值, 
本质原因由于php不存在原型连,执行过程中没有变量对象。 
3.数据类型的不同 
js中有undefined类型,php中无此类型, 
因此当一个变量未赋予任何值时,js中此类型为undefined(使用未申明的变量会报错),而在php中则为Null类型; 
并且js中只有number类型,而在php中无此类型,取代的为int float类型; 
4.字符串的连接 
js中使用加号 + += 
php中使用点号 ..= 
5.控制语句的区别 
else if与elseif在php中都支持,js只支持前者 
6.大小写问题 
js严格区分大小写 
php中自定义函数名不区分大小写。命名函数时不可使用已声明的函数,或PHP内建的函数名称。 
7.变量的作用范围 
php在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的 
程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无 
法直接调用使用全局变量。函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以 
告诉函数主体此变量为全局。 
js由于原型连的关系,可直接调用 
8.静态变量 
PHP支持声明函数变量为静态的(static) 
js随无静态变量但可以定义函数的属性来冒充静态变量