如何确定变量是“未定义”还是“null”?

2022-08-29 21:53:16

如何确定变量是 还是 ?undefinednull

我的代码如下:

var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  // DO SOMETHING
};
<div id="esd-names">
  <div id="name"></div>
</div>

但是如果我这样做,JavaScript解释器就会停止执行。


答案 1

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

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

因为是真的,上面的代码将同时捕获 和 。null == undefinednullundefined


答案 2

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

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

--这100%等同于更明确但不那么简洁的:

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

在编写专业JS时,人们理所当然地认为类型相等以及==vs ===的行为是可以理解的。因此,我们使用并且仅与 进行比较。==null


再次编辑

建议使用 的评论是完全错误的。是的,如果变量不存在,我上面的解决方案将导致引用错误。这是一件好事。这个Referror是可取的:它将帮助您找到错误并在发布代码之前修复它们,就像其他语言中的编译器错误一样。如果您正在处理您无法控制的输入,请使用 / 。typeoftrycatch

代码中不应有任何对未声明变量的引用。