一尘不染

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

javascript

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


阅读 160

收藏
2022-02-07

共2个答案

一尘不染

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

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

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

2022-02-07
一尘不染

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

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

– 这 100% 等同于更明确但不太简洁的:

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

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


再次编辑

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

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

2022-02-07