Javascript 检查 undefined 是否不起作用

Javascript check if undefined doesnt work

我想检查一个对象是否被定义..

对象的内容:

所以我会做:

if (e.model.item.state  != "undefined"){
var stateID = e.model.item.state.id;
....
}
else{

}

然后 e.model.item.state 未定义,但它确实进入 if 子句并在此处停止:

var stateID = e.model.item.state.id;

因为未定义..!

我也试过:

 !== "undefined"
 !=== "undefined"

您通过以下方式之一检查 undefined

var a;

if( a === undefined )

if( typeof a === "undefined" )

"undefined" 不等于 undefined。因此,如果您直接比较是否相等,请在不带引号的情况下使用它。如果您使用 typeof 运算符,则需要使用引号,因为 typeof 总是 returns 一个字符串值。

"undefined"undefined 不同。第一个是其中包含 'undefined' 单词的字符串,另一个是未定义变量的保留 js 术语。

something == "undefined"是将它与字符串进行比较。您应该删除引号。

在 JS 中,你可以检查一个变量是 undefinednullfalse 还是 0 只需简单地做,

if (e.model.item.state) {
   // e.model.item.state is NOT `undefined`, `null`, `false` or `0`
}
else {
   // e.model.item.state is either `undefined`, `null`, `false` or `0`
}

最好用这个来避免不必要的undefined error:-

if (e && e.model && e.model.item & e.model.item.state) {
   // e.model.item.state is NOT `undefined`, `null`, `false` or `0`
}