使用:
if (typeof something === "undefined") {
alert("something is undefined");
}
如果具有某些属性的对象变量可以使用如下所示的相同内容:
if (typeof my_obj.someproperties === "undefined"){
console.log('the property is not available...'); // print into console
}
由于 ECMAScript 5, undefined
不能被覆盖,所以my_obj === undefined
也可以,但只有my_obj
存在时才my_obj
。这可能是也可能不需要,因为如果你需要这个语义,你也可以使用null
(请参阅JavaScript 中 null 和 undefined 之间的区别是什么? )。但是对于对象属性,无论属性是否存在,它都可以工作。
我相信这个话题有很多不正确的答案。与普遍看法相反,“undefined” 不是 JavaScript 中的关键字,实际上可以为其分配值。
执行此测试的最强大方法是:
if (typeof myVar === "undefined")
这将始终返回正确的结果,甚至可以处理未声明myVar
的情况。
var undefined = false; // Shockingly, this is completely legal!
if (myVar === undefined) {
alert("You have been misled. Run away!");
}
另外, myVar === undefined
会在 myVar 未声明的情况下引发错误。
在 JavaScript 中有null并且未定义 。它们有不同的含义。
Marijn Haverbeke 在他的免费在线书 “ Eloquent JavaScript ”(强调我的)中说:
还有一个类似的值 null,其含义是 “此值已定义,但它没有值”。 undefined 和 null 之间的意义差异主要是学术性的,通常不是很有趣。 在实际程序中,通常需要检查某些东西是否 “有价值”。在这些情况下,可以使用表达式 == undefined,因为即使它们不是完全相同的值,null == undefined 也会产生 true。
所以,我想检查某些内容是否未定义的最佳方法是:
if (something == undefined)
希望这可以帮助!
编辑:为了响应您的编辑,对象属性应该以相同的方式工作。
var person = {
name: "John",
age: 28,
sex: "male"
};
alert(person.name); // "John"
alert(person.fakeVariable); // undefined