七種語言類型
- int
- string
- boolean
- null
- undefined
- object
- symbol
undefined
let a;
let b = void(0)
a === b // true
變量未指派都是undefined,是一個變量,不是關鍵字,用void(0)代替
我們一般不會把變量指派為undefined,這樣可以保證所有的值為undefined的變量,都是從未指派的自然狀态。
void(0)
<a href="#" target="_blank" rel="external nofollow" >click</a>
預設跳轉到頂部
<a href="#id" target="_blank" rel="external nofollow" >click</a>
預設跳轉到id的元素
<a href="javascript:void(0)" target="_blank" rel="external nofollow" >click</a>
表示不跳轉
null
是一個關鍵字,可以用null來擷取,但是undefined不行
number
js不能比較小數,但可以用精度來判斷
Symbol
獨一無二的key值
let a = symbol();
let b = symbol("this is b");
obj[a] = 100;
用symbol做對象屬性的時候object.keys擷取不到
代替變量
const COLOR_RED = Symbol();
const COLOR_GREEN = Symbol();
function getComponent(color) {
switch(color) {
case COLOR_RED:
return "red";
case COLOR_GREEN:
return "green";
default:
throw new Error("Undefind color")
}
}