为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2019-06-26 14:56:18
如何确定变量是“未定义的”还是“空的”?如何确定变量是否是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解释器就会停止执行。
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您可以使用抽象等式算子要做到这一点:

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

因为null == undefined为真,上述代码将同时捕获两个nullundefined.


查看完整回答
反对 回复 2019-06-26
?
绝地无双

TA贡献1946条经验 获得超4个赞

标准的捕捉方法nullundefined同时:

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

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

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

在编写专业的JS时,人们理所当然地认为类型相等和==VS===被理解了。所以我们用==并且只与.相比null.


再编辑

建议使用typeof很简单不对。是的,如果变量不存在,上面的解决方案将导致ReferenceError。这是件好事。这个ReferenceError是可取的:它将帮助您在交付代码之前找到错误并修复它们,就像其他语言中的编译器错误一样。

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


查看完整回答
反对 回复 2019-06-26
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

综合上述答案,似乎最完整的答案是:

if( typeof variable === 'undefined' || variable === null ){
    // Do stuff}

这对于任何未声明或声明并显式设置为NULL或未定义的变量都适用。对于任何具有实际非空值的声明变量,布尔表达式都应该计算为false。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 682 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信