相似性
- 在JavaScript中,null和undefined没有太大的区别,两者都可以表示某个变量为“空”。
- 在条件判断语句中,两者都被判定为false,并且
undefined == null
的值为true。
但是
null === undefined // false
'' + null // 变为字符串'null'
'' + undefined // 变为字符串'undefined'
原因是在JavaScript中,null是object类型,表示空值,而undefined是undefined类型,''加两者任意一个都变为字符串。
区别
-
undefined不是关键字,而null是关键字;
var undefined=“” //undefined
var null=“” //会报错
-
null表示一个值被定义了,但是定义为“空值”;undefined表示根本不存在定义。
-
null表示没有对象,此处不应该有值;undefined表示“缺少值”,此处应该有一个值,但还没定义。
-
使用Number()对undefined和null进行类型转换时前者为NaN,后者为0;
-
undefined本质上是window的一个属性,而null是一个对象;
-
与后台交互时
注意:使用变量拼接字符串形成请求url时,为null的变量拼接后会变成字符串"null",而不是null,此时请求参数就可能会出错。