什么是null,undefined
javascript高级程序设计:
使用var声明变量但未对其加以初始化时这个变量的值是undefined。
null值则是表示空对象指针。
所以typeof null返回object
typeof undefined // undefined
typeof null // object
null只有和null和undefined比较才会返回true,其他都会返回false;
原因是因为js数据基本类型只有null和undefined没有属性
在控制台输入null.constructor
报错Cannot read property ‘constructor’ of null
在控制台输入undefined.constructor
报错Cannot read property ‘constructor’ of
String.constructor;
Boolean.constructor;
Number.constructor
都会返回一个 ƒ Function() { [native code] }这是因为这三个基本类型都有自己对应的包装对象
null==undefined
//true
null==null
//true
ps:
双等于只比较值,而三等于既比较值,也比较类型null===undefined为false
null===null
//true
null===undefined
//false
undefined + 6 // NaN
null + 6 // 6
根据C语言的传统,null被设计成可以自动转为0