工做中咱們常常須要判斷某個變量/屬性是否爲undefined。一般有兩種寫法javascript
1
2
3
4
5
|
// 方式1
typeof
age ===
'undefined'
;
// 方式2
age === undefined
|
這兩種寫法有什麼區別嗎? 應該使用哪種呢?看看下面的例子java
1
|
typeof
age ===
'undefined'
;
// true
|
標識符 age 沒有聲明過,輸出true。spa
再看另外一個例子3d
1
|
age === undefined;
// 報錯
|
Firebug提示age is not defined,code
這就是二者的區別, 即不肯定age是否聲明或定義時用方式1,肯定的則能夠用方式2。使用方式1若是變量沒有聲明,代碼也不會報錯,但方式2會報錯。看似方式1容錯性更好,實際會是潛伏了的Bug。變量先聲明再使用永遠是個好習慣。orm
此外,方式1是兩次運算,方式2是一次。 blog