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被全局性的定義 才會這行這些語句
}
rss_feed