JavaScript 標準內置對象 undefined,判斷對象是否為空
最近更新時間 2020-11-25 18:26:01
undefined 是全局對象的一個屬性。它是全局作用域的一個變量。undefined 的最初值就是原始數據類型 undefined,表示一個變量沒有賦值。
判斷變量是否定義
需要使用嚴格相等操作符(===)而不是標準相等操作符(==),因為 === 會嚴格判斷雙方的類型、值等是否相等。而 == 會判斷 null 等同於 undefined。
let x;
if (x === undefined) {
// 執行這些語句
} else {
// 這些語句不會被執行
}
通過字符串判斷變量是否定義,如下所示:
let x;
if(typeof x === 'undefined') {
// 執行這些語句
}
建議使用第二種方法,因為 typeof 不會在一個變量沒有被聲明的時候拋出一個錯誤。
// 這裡沒有聲明y
if(typeof y === 'undefined') { // 沒有錯誤,執行結果為true
console.log("y is " + typeof y ) // y is undefined
}
if(y === undefined) { // ReferenceError: y is not defined
}
使用下面的代碼判斷對象中是否存在變量,如下所示:
if ('x' in window) {
// 只有x被全局性的定義 才會這行這些語句
}