1. 七種內(nèi)置類型
? null、undefined、boolean、number、string、object、symbol(ES6新增) ,除object外,其他統(tǒng)稱“基本類型”。
? typeof null === "object”;? // true
? typeof Symbol() === "symbol";? // true
2. 檢測(cè)null值需要使用復(fù)合條件
? var a = null;
? (!a && typeof a === "object"); // true
3. undefined和undeclared
(1)使用未聲明的變量
? ? var a; a;? // undefined,已聲明未賦值
? ? b; // ReferenceError: b is not defined
(2)typeof
? ? var a; typeof a;? ?// undefined,a已聲明,沒有賦值
? ? typeof b; //?undefined, b其實(shí)是undeclared,但是在JavaScript里面沒有undeclared類型,也報(bào)undefined
4. 判斷未聲明的變量
// 這樣會(huì)拋出錯(cuò)誤
if (DEBUG) {
console.log("Debugging is starting");
}
// 這樣是安全的
if (typeof DEBUG !== "undifined") {
console.log("Debugging is starting");
}
5. 咬文嚼字
原文P5提到“null是基本類型中唯一的一個(gè)“假值”(falsey或者false-like,參見第4章)類型“,這句話似乎有誤,其實(shí)以下情況在js條件判斷是都是false:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? undefined、null、false、0、NaN、"" 或 ''(空字符串)
也就是說null和undefined都是基本類型中的“假值”。