我想检查对象是否已定义..
对象的内容:
所以我会这样做:
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"
答案 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中,您只需执行操作即可检查变量是undefined
,null
,false
还是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
始终返回字符串值。