null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。
null==undefined//true,== 表示相等 (值相等)
null===undefined//false,===表示恒等(类型和值都要相等)
null转数值为0,undefined转数值为NaN
到这里恍然一看,突然发现有点不对劲,==是与用于判断值相等,现在null转换数值为0,undefined转化数值为NaN,这两个值也不相等啊,怎么就返回true了呢,
通过看资料才发现原来在Javascript规范中:js在比较相等性之前,不能将 null 和 undefined 转换成其他任何值,并且规定null 和 undefined 是相等的。因为null 和 undefined都代表着无效的值。