如何确定变量是未定义的还是空的?
我的代码如下:
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
// DO SOMETHING
};
<div id="esd-names">
<div id="name"></div>
</div>
但如果我这样做,JavaScript解释器将停止执行。
如何确定变量是未定义的还是空的?
我的代码如下:
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
// DO SOMETHING
};
<div id="esd-names">
<div id="name"></div>
</div>
但如果我这样做,JavaScript解释器将停止执行。
当前回答
最短最简单的:
if(!EmpName ){
// DO SOMETHING
}
如果EmpName为:
无效的未定义NaN公司空的字符串(“”)0假的
其他回答
您可以使用抽象相等运算符的特性来执行此操作:
if (variable == null){
// your code here.
}
因为null==undefined为true,所以上面的代码将捕获null和undefineed。
if (typeof EmpName != 'undefined' && EmpName) {
如果值不是:
无效的未定义NaN公司空字符串(“”)0假的
结合以上答案,似乎最完整的答案是:
if( typeof variable === 'undefined' || variable === null ){
// Do stuff
}
这应该适用于任何未声明或已声明且显式设置为null或undefined的变量。对于具有实际非空值的任何声明变量,布尔表达式的计算结果应为false。
最简单的检查方法是:
if(!variable) {
// If the variable is null or undefined then execution of code will enter here.
}
if(x==null)在JavaScript中是个坏主意。使用“==”判断-它可能会导致意外的类型强制,并且CoffeeScript无法读取它,决不能在条件判断中使用“==”或“!=”!
if(x)会更好,但要注意0和“”。它将被视为false,而不是“!=null”的equal方法为true。
请参阅JavaScript最佳实践。