让我们看看 if (value == 0) 的结果是怎样的呢。
value 值 | value == 0 结果 |
undefined | false |
null | false |
false | true |
0 | true |
"" | true |
"false" | false |
"0" | true |
0+"" | true |
[] | true |
也就是说:false、零长度字符串、字符串类型的 0、[],结果都是 == 0,就连 [] 都 == 0,头都大了。(虽然将布尔、字符串与数字 0 比较时,在编辑器中会提示错误,但是程序仍然能够运行)
如果想过滤数据类型,只有数字 0 才返回 true,那么就用 === 吧。