如何确定变量是否“未定义”或“空”?
2010-04-15
3462780
如何确定变量是否为
undefined
或
null
?
我的代码如下:
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
// DO SOMETHING
};
<div id="esd-names">
<div id="name"></div>
</div>
但是当我这样做时,JavaScript 解释器会停止执行。
3个回答
您可以使用 抽象相等运算符 的特性来执行此操作:
if (variable == null){
// your code here.
}
因为
null == undefined
为真,所以上述代码将捕获
null
和
undefined
。
Sarfraz
2010-04-15
同时捕获
null
和
undefined
的标准方法是这样的:
if (variable == null) {
// do something
}
——这 100% 相当于更明确但不太简洁的:
if (variable === undefined || variable === null) {
// do something
}
在编写专业 JS 时,理所当然地认为
类型相等以及
==
与
===
的行为是可以理解的。因此我们使用
==
并且仅与
null
进行比较。
再次编辑
建议使用
typeof
的评论完全是
错误的
。是的,如果变量不存在,上面的解决方案将导致 ReferenceError。
这是一件好事。
此 ReferenceError 是可取的:它将帮助您在发布代码之前找到错误并修复它们,就像其他语言中的编译器错误一样。如果您正在处理无法控制的输入,请使用
try
/
catch
。
您的代码中不应有任何对未声明变量的引用。
temporary_user_name
2014-01-22
结合以上答案,似乎最完整的答案是:
if( typeof variable === 'undefined' || variable === null ){
// Do stuff
}
这应该适用于任何未声明或已声明并明确设置为 null 或未定义的变量。对于任何具有实际非空值的声明变量,布尔表达式的计算结果应为 false。
jkindwall
2013-10-11