JavaScript 标准内置对象 undefined,判断对象是否为空
Lasted 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被全局性的定义 才会这行这些语句
}