我看了这个问题:
但它没有帮助。
我有以下代码:
if (_modeID != 8 && _modeID != 9)
// do something
_modeID
已定义并在一个单独的文件中分配了一个值。
我遇到了一个错误,由于某种原因,var _modeID = someIntVal;
永远不会被执行,所以当上面的if
语句运行时,根本就没有_modeID
。
我将它扩展为if (_modeID === null || _modeID === undefined || (_modeID != 8 && _modeID != 9)
,但这仍然会引发以下错误:
ReferenceError - Java脚本错误:'_modeID'未定义
我希望第一种或第二种情况在这种情况下评估为真,但显然不是。谁能解释我做错了什么?
假设这两个片段是“完整”文件,var _modeID = undefined; if (_modeID === undefined) ...
与简单if (_modeID === undefined) ...
不一样吗?
答案 0 :(得分:5)
我通常看到人们检查变量的类型而不是变量本身,即
if( typeof _modeID === 'undefined' ) {
...
}