工作中我們常常需要判斷某個變數/屬性是否為undefined。通常有兩種寫法
複製代碼代碼如下:
// 方式1
typeof age === 'undefined';
// 方式2
age === undefined
這兩種寫法有什麼差別嗎? 應該使用哪一種呢?看看下面的例子
複製代碼代碼如下:
typeof age === 'undefined'; // true
標識符age 沒有聲明過,輸出true。
再來看另一個例子
複製代碼代碼如下:
age === undefined; // 報錯
Firebug提示age is not defined,
這就是兩者的差別, 即不確定age是否聲明或定義時用方式1,確定的則可以用方式2。使用方式1如果變數沒有聲明,程式碼也不會報錯,但方式2會報錯。看似方式1容錯性更好,實際上會是潛伏了的Bug。變數先宣告再使用永遠是個好習慣。
此外,方式1是兩次運算,方式2是一次。