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

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

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


收到一只叮咚
浏览 683回答 3
3回答

慕丝7291255

您可以使用抽象等式算子要做到这一点:if&nbsp;(variable&nbsp;==&nbsp;null){ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;your&nbsp;code&nbsp;here.}因为null == undefined为真,上述代码将同时捕获两个null和undefined.

绝地无双

标准的捕捉方法null和undefined同时:if&nbsp;(variable&nbsp;==&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something&nbsp;}-100%相当于更明确但不那么简洁的:if&nbsp;(variable&nbsp;===&nbsp;undefined&nbsp;||&nbsp;variable&nbsp;===&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;something&nbsp;}在编写专业的JS时,人们理所当然地认为类型相等和==VS===被理解了。所以我们用==并且只与.相比null.再编辑建议使用typeof很简单不对。是的,如果变量不存在,上面的解决方案将导致ReferenceError。这是件好事。这个ReferenceError是可取的:它将帮助您在交付代码之前找到错误并修复它们,就像其他语言中的编译器错误一样。在代码中不应该有任何对未声明变量的引用。

慕标琳琳

综合上述答案,似乎最完整的答案是:if(&nbsp;typeof&nbsp;variable&nbsp;===&nbsp;'undefined'&nbsp;||&nbsp;variable&nbsp;===&nbsp;null&nbsp;){ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Do&nbsp;stuff}这对于任何未声明或声明并显式设置为NULL或未定义的变量都适用。对于任何具有实际非空值的声明变量,布尔表达式都应该计算为false。
打开App,查看更多内容
随时随地看视频慕课网APP