JS中所有数据类型的true/false判断总结

直接说总结:

以下变量=false:

undefined

null

false

0  NaN

''  ""

注意: 空对象和空数组都属于对象,一定等同于true

根据ECMAScript 的 ToBoolean 规范:

关于 == ===的判断比较,双等号将执行类型转换; 三等号将进行相同的比较,而不进行类型转换 (如果类型不同, 只是总会返回 false );

附一张来自MDN的图总结:

x y == === Object.is
undefined undefined true true true
null null true true true
true true true true true
false false true true true
"foo" "foo" true true true
{ foo: "bar" } x true true true
0 0 true true true
+0 -0 true true false
0 false true false false
"" false true false false
"" 0 true false false
"0" 0 true false false
"17" 17 true false false
[1,2] "1,2" true false false
new String("foo") "foo" true false false
null undefined true false false
null false false false false
undefined false false false false
{ foo: "bar" } { foo: "bar" } false false false
new String("foo") new String("foo") false false false
0 null false false false
0 NaN false false false
"foo" NaN false false false
NaN NaN false false true

参考:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness

猜你喜欢

转载自blog.csdn.net/nianbingsihan/article/details/83240124