工作中我們常常需要判斷某個變數/屬性是否為undefined。通常有兩種寫法
// 方式1
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是一次。