false
的情況,被稱為Falsy Value(假值):""
:空字串
0
、-0
:正、負零
NaN
:Not a Number
當不是數值型別與數值一起運算或想轉數值型別不成功無法計算時,會回傳NaN
。而NaN
是數值型別。
console.log(Number(23 + "day")); // NaN
console.log(typeof NaN); // "number"
null
:空值 「要讓這個變數的值是空的。」
var a = null;
console.log(a); // null
console.log(typeof null); // "object"
奇妙現象,使用typeof
觀察null
型別,不是null
型別而是object
物件型別。據說是最初創造JavaScript的bug,隨著使用率高評估後不適合修改的關係。
undefined
:未定義 「某變數已被宣告,但值的內容未被定義的預設值。」
var b;
console.log(b); // undefined
console.log(typeof undefined); // "undefined"
false
:false
Boolean("") // false
Boolean(0) // false
Boolean(-0) // false
Boolean(NaN) // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(false) // false
範例:
"0"
、"false"
:空字串以外的字串[]
:空陣列{}
:空物件function(){}
:空函式Boolean("0") // true
Boolean("false") // true
Boolean([]) // true
Boolean({}) // true
Boolean(function(){}) // true