如何确定变量是'undefined'还是'null'?

如何确定变量是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解释器停止执行。


您可以使用抽象相等运算符的特性来执行此操作:

if (variable == null){
    // your code here.
}

因为null == undefined是真的,所以上面的代码会同时捕获nullundefined


同时捕获nullundefined的标准方法是这样的:

if (variable == null) {
     // do something 
}

- 这是100%相当于更明确,但不那么简洁:

if (variable === undefined || variable === null) {
     // do something 
}

在编写专业JS时,我们理解[类型相等和== vs === ]的行为[1]是理所当然的。 因此我们使用==并且只比较null


再次编辑

建议使用typeof的注释完全错误。 是的,如果变量不存在,我上面的解决方案将导致ReferenceError。 这是一件好事。 这个ReferenceError是可取的:它会帮助你在发布代码之前找到你的错误并修复它们,就像在其他语言中编译器错误一样。

您不应该在代码中引用未声明的变量。


if (variable == null) {
    // Do stuff, will only match null or undefined, this won't match false
}
链接地址: http://www.djcxy.com/p/2137.html

上一篇: How to determine if variable is 'undefined' or 'null'?

下一篇: Why is null an object and what's the difference between null and undefined?