true和false
阿新 • • 發佈:2018-11-21
下面這些值在JavaScript中都是falsy
:
-
false
-
0 (數字零)
-
"" (空字串)
-
null
-
undefined
-
NaN (一個特殊的Number值,意為Not-a-Number!)
除上面幾個值以外,其他所有值都是truthy
,包括字串"0", "false", 空函式,空陣列,空物件。
假值的比較
Falsy values
遵循一些看起來怪怪的比較規則,這些規則可能會導致程式出現一些邏輯錯誤。
假值false
,0
,""
三者是相等的,並且它們之間可以相互比較。
var c = (false == 0); // true
var d = (false == ""); // true var e = (0 == ""); // true
假值null
,undefined
,除了它們自身之外和任何值都不相等。
var f = (null == false); // false var g = (null == null); // true var h = (undefined == undefined); // true var i = (undefined == null); // true
最後,假值 NaN 和任何值都不相等,包括 NaN 本身!
var j = (NaN == null); // false
var k = (NaN == NaN); // false
你應該知道typeof(NaN)
返回"Number"。幸運的是,JavaScript有一個核心函式isNaN()