检测未定义的对象属性
检查JavaScript中的对象属性是否未定义的最佳方法是什么?
使用:
if (typeof something === "undefined") {
alert("something is undefined");
}
如果一个具有一些属性的对象变量可以像这样使用相同的东西:
if (typeof my_obj.someproperties === "undefined"){
console.log('the property is not available...'); // print into console
}
我相信这个话题有很多不正确的答案。 与普遍的看法相反,“未定义” 不是 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中有空,并且没有定义 。 它们有不同的含义。
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
链接地址: http://www.djcxy.com/p/519.html