Javascript中null值,特别注意的两点

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-19 15:05:43.0

null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化.


我们看下面的一个例子


Javascript

var obj = null;
console.log(typeof obj === "object", 0, 0); // true


我们通过对null的命名描述来理解,null是被期望在一个对象上,可能在javascript的规范中设这么设定的.所以返回一个true.其实null本身就是一个字面量了,返回null即可,为啥还返回object呢?这应该是规范中存在的BUG吧.


但是要值得注意的是,null与undefined是不同的.undefined是全局变量的一个属性.

当检测null或者undefined时,注意相等(==)与全等(===)两个操作符的区别(前者会执行类型转换),所以我们在设定JAVASCRIPT编写规范中,加入当做比较时,使用全等操作符(===),试试执行下面的代码理解.


Javascript

null === undefined // false
null  == undefined // true


所以大家一定要理解这两点.这些有可能在代码做判断的时候犯错误,也是面试工作中,常出的问题.