Heim > Fragen und Antworten > Hauptteil
高洛峰2017-04-10 12:50:24
要理解这些看起来怪异的问题,方法只有一个:熟悉规范。
你可以参考一下这个问题: http://segmentfault.com/q/1010000000305997
PHPz2017-04-10 12:50:24
If x is null and y is undefined, return true
http://stackoverflow.com/questions/16607761/why-null-undefined-is-true-in-javascript
怪我咯2017-04-10 12:50:24
这里有一点要解释,当这个逻辑运算符长度为 2
的时候(==
, !=
),只是判断外在的值是不是一样的,而不会判断类型。如
var a = 1, b = "1";
console.log(a == b);
它输出的结果就是 true
。但是如果我们在中间判断的时候再加上一个等号,那么就是严格判断了,需要类型和值都一样的时候才会是 true
,否则就是 false
。也就是说
var a = 1, b = "1";
console.log(a === b);
的时候,返回的结果就是 false
了,因为 a
是 int
型的,而 b
则是字符串。
详见:http://blog.xcoder.in/node-learning/2013/08/16/node-3-base/#section-1
PHPz2017-04-10 12:50:24
问题已经解决了,我是来玩的!
null == undefined
为 true
很正常,因为规范里就是这么规定的,一般情况下 null === undefined
是 false
,想不想知道啥情况下 null === undefined
为 true
呢……
(function(undefined) {
console.log(null === undefined);
})(null);