js 各型別和bool型比較
阿新 • • 發佈:2019-01-27
假若表示式如下:
var result1 = if(a);
var result2 = a == true;
var result3 = a == false;
則結果為(在node.js 4.4.4 環境下測試):
a | result1 | result2 | result3 |
---|---|---|---|
undefined | false | false | false |
null | false | false | false |
0 | false | false | true |
1 | true | true | fals |
2 或 其他數字 | true | false | false |
“” | false | false | true |
{} | true | false | false |
NaN | false | false | false |
基本上就是上面這些了,有點噁心,undefined null Nan {} 和 true false 比較 返回的都是 false (虧我之前一直以為一個變數和boolean型別比較結果如果不是true,那麼必定就是false。。。大錯特錯) 1 和true比較 返回true 0 和false 比較返回true “”和false比較 也返回true。。 在專案中 這些小細節在使用的時候一定不能穆稜兩可,要清晰的知道。 實在不行,就拿出你的瀏覽器,或者你安裝了node.js環境,直接先測試在編碼吧。