Javascript检查是否未定义不起作用

时间:2016-07-12 06:25:08

标签: javascript arrays object undefined

我想检查对象是否已定义..

对象的内容:

Object

所以我会这样做:

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"

4 个答案:

答案 0 :(得分:3)

最好使用它来避免不必要的undefined error: -

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

答案 1 :(得分:2)

"undefined"undefined不同。第一个是带有'undefined'一词的字符串,另一个是未定义var的保留js术语。

执行something == "undefined"会将其与字符串进行比较。你应该删除引号。

答案 2 :(得分:2)

在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`
}

答案 3 :(得分:0)

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

var a;

if( a === undefined )

if( typeof a === "undefined" )

"undefined"不等于undefined。因此,如果直接比较相等性,请使用它而不带引号。如果您使用typeof运算符,则需要使用引号,因为typeof始终返回字符串值。