是'未定义'虚假或什么都没有
Is 'not defined' falsy or nothing?
这让我很生气:如果我不这样做:
var a;
然后这样做:
if(a){
// doing stuff
}
它吐出了这个错误:
ReferenceError: a is not defined
那么,我该如何检查变量是否已定义!
请不要告诉我使用typeof
。
编辑:
CCD_ 2有时是由库定义的。我想检查库是否定义了它,所以如果没有,我定义它,这样我仍然可以在代码中使用它!
检查是否存在未定义且未抛出的ReferenceError like so:
if (typeof window.a == "undefined") {
// do something
}
如果您希望确保声明a
,并且不会导致任何引用错误问题。您可以添加重新声明语句。
var a = a;
在这种情况下,如果定义了,则不会发生任何更改,否则就是未定义的。
注意:这仅在a
处于全局范围时有效,请查看注释以了解更多详细信息。
这个出了什么问题
if(typeof a!='undefined')
{
// a is defined
}
else
{
// a is not defined
}
更新:或者,您可以使用
if(a==void 0) // undefined
或者,您可以尝试以下操作:
if( !window.hasOwnProperty('a') ){
window.a = 'some definition here';
}
相关文章:
- 什么更快?运行空函数或检查函数是否未定义
- [未定义] 和 [,] 有什么区别
- 未定义===未定义比较什么
- 检查链接对象形式中未定义属性的最佳实践是什么
- 是'未定义'虚假或什么都没有
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- 当使用JavaScript时“未定义”某些内容时,这意味着什么?
- 咖啡脚本中的“if a 不是未定义的”和“if a”有什么区别
- 未捕获的引用错误和未定义之间有什么区别
- 当未定义默认导出时,从“模块”导入模块是什么,为什么它与将 * 导入为模块不同
- 在为 QScriptEngine 重新定义 “print()” 函数时返回“未定义的值”有什么意义?
- 是什么原因导致流星中“模板未定义”
- 是什么导致了我的“未捕获的类型错误:无法读取未定义的属性'到小写'”错误
- 使用 === 运算符测试未定义而不是使用 == 运算符有什么好处
- 什么类/类型是未定义的,是否可以向其扩展/添加方法
- 我的变量有什么问题,它是未定义的
- win.js.ui.html控件:'元素'未定义.?这个错误是什么
- 属性<的值无效;旅行模式>:未定义,什么
- TypeError:undefined不是函数--我不'我看不出什么函数是未定义的
- Javascript:什么等于未定义?为什么不't myVar==未定义的工作