js和php语法区别

admin2023-01-173910

1. 基本类型

php的基本类型分别:

1.基本数据类型:整型、小数(float/double)、字符串、布尔类型

2.复合类型:数组、对象

3.特殊类型:Null,资源类型


JavaScript的基本类型:Undefined,Null,Boolean,Number 和 String。

区别:php 有资源类型,小数分单双精度,而Js的数的类型只是Number,且有Undefined类型。


2. 字符串连接符

php 的字符串连接符是 :"  .  "  和 "  .+  "

Js 的字符串连接符是 : "  +  "  和 "  +=  "


3.数组相加

php 数组相加用:  " + ",可以直接相加

Js 用函数拼接: concat


4. 大小写敏感度

php : 只有变量名区分大小写

Js : 全部区分大小写


5. 声明变量

php : 变量声明用 :  " $变量名 "

Js : 变量声明 : " var 变量名 "


6.字符串函数

php 求字符串长度等函数用单独的: strlen()

Js : 是面向对象的语言,String对象内置了函数,字符串.length,直接求。


7. 函数参数问题

php : 参数多传了可以,但不可以少传

Js : 传几个都可以,有 arguments 对象接收参数


8. 数组循环

php : foreach(数组 as 变量){ ...  }

Js : for(变量 in 数组){ ...  }


9. 关于未定义变量

php : 为 null 类型。

Js : 为  undefined 类型


10. 关于单引号和双引号的解析机制

php : 双引号能解析特殊字符,包括变量。单引号不行。

Js : 单引号和双引号没有区别。


11.PHP嵌套函数

PHP嵌套函数,在内部定义后,全局可以访问。都具有全局作用域。

Js不行,Js按作用域链。


12. 引用传递

php : 引用传递加符号,& 。

Js :  返回引用函数前加 & ,  调用也要加 & 。


13. 函数提升

php:有函数提升

Js:函数声明也有提升,表达式没有提升。


14. 数组

php: $arr = array(3); // 0=> int 3

Js: var $arr =new Array(3);  // 3个元素


15.异常

Js:只有一个 try...catch...finally ,且catch(exception)没有类型


16.控制语句的区别

else if与elseif在php中都支持,js只支持前者


17.变量的作用范围

php在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的

程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无

法直接调用使用全局变量。函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以

告诉函数主体此变量为全局。

js由于原型连的关系,可直接调用


18.静态变量

PHP支持声明函数变量为静态的(static)

js随无静态变量但可以定义函数的属性来冒充静态变量


19.类型转换的不同

在javascript中

空对象和空数组转换为boolean值为true;

但在php中

空对象空数组转换为boolean值为false;

(仅在php4中空对象的boolean值为false)

包括非0的负数值,都是转换为true;


20.实形参的不同

在js中形参和实参的个数对比起来都没有限制,形参个数可以大于实参,也可以少于实参

而在php中,实参数大于形参不报错,但当实参个数少于形参个数时(并且未指定的形参未定义时就会报错)

复制代码 代码如下:

function mao(val1,val2,val3){

}

mao(aa,bb);

此时由于val3未指定实参,会报错

但当val3初始化一个值时,不报错

复制代码 代码如下:

function mao(val1,val2,val3="123"){

}

mao(aa,bb);


js中可以写一个三元表达式来给未赋值的形参给定一个初始值,不可以和php一样在形参列表里面赋值,

本质原因由于php不存在原型连,执行过程中没有变量对象。

网友评论