null == false; // false undefined == false; // false undefined == null; // true
为什么JS中undefined == false 和null == false 返回的是false,而undefined == null 返回的是true,求解释?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
这时候必须要祭出 @justjavac 大大的神器了!http://segmentfault.com/blog/justjavac/1190000000650129
楼上的答案确实很全面,题主能这么问说明收到C语言的影响了吧?C语言确实是NULL的value就是0,但在JS中最好区分开来,我们不要去考虑null应该是什么值,因为它本身就是值,而false和true却与0和1对应,至于undefined == null这可能是一种硬性规定吧。
NULL
value
0
null
false
true
1
undefined == null
null 和 undefined 是相等的。但是要比较相等性之前,不能将 null 和 undefined 转换成其他任何值。
--《JavaScript高级程序设计中文版3e》52页
这时候必须要祭出 @justjavac 大大的神器了!http://segmentfault.com/blog/justjavac/1190000000650129
楼上的答案确实很全面,题主能这么问说明收到C语言的影响了吧?C语言确实是
NULL
的value
就是0
,但在JS中最好区分开来,我们不要去考虑null
应该是什么值,因为它本身就是值,而false
和true
却与0
和1
对应,至于undefined == null
这可能是一种硬性规定吧。null 和 undefined 是相等的。
但是要比较相等性之前,不能将 null 和 undefined 转换成其他任何值。