null 和 undefined 之间的 == 也涉及隐式强制类型转换。ES5 规范 11.9.3.2-3 规定:
(1) 如果 x 为 null , y 为 undefined ,则结果为 true 。
(2) 如果 x 为 undefined , y 为 null ,则结果为 true 。
在 == 中 null 和 undefined 相等(它们也与其自身相等),除此之外其他值都不存在这种
情况。
这也就是说在 == 中 null 和 undefined 是一回事,可以相互进行隐式强制类型转换:
var a = null;
var b;
a == b; // true
a == null; // true
b == null; // true
a == false; // false
b == false; // false
a == “”; // false
b == “”; // false
a == 0; // false
b == 0; // false
82 | 第 4 章
null 和 undefined 之间的强制类型转换是安全可靠的,上例中除 null 和 undefined 以外的
其他值均无法得到假阳(false positive)结果。个人认为通过这种方式将 null 和 undefined
作为等价值来处理比较好。
null 和 undefined 之间的相等比较
最新推荐文章于 2023-03-09 01:12:09 发布