[软件设计/软件工程] 如何在 JavaScript 中检查未定义或空变量?

[复制链接]
发表于 2022-5-3 11:58:58
问题
我们经常在 JavaScript 代码中使用以下代码模式
  1. if (typeof(some_variable) != 'undefined' && some_variable != null)
  2. {
  3.     // Do something with some_variable
  4. }
复制代码

是否有一种不那么冗长的检查方法会产生相同的效果?

根据一些论坛和文献,简单地说以下应该具有相同的效果。
  1. if (some_variable)
  2. {
  3.     // Do something with some_variable
  4. }
复制代码

不幸的是,当 some_variable 未定义时,Firebug 在运行时将这样的语句评估为错误,并且第一条语句正好适合它。这只是萤火虫的(不想要的)行为,还是两种方式之间真的有什么区别?

回答
您必须区分不同的情况:

不明确的

类型
  1. if(typeof someUndeclaredVar == whatever) // works
  2. if(someUndeclaredVar) // throws error
复制代码

已声明但未初始化的变量是 undefined 。

  1. let foo;
  2. if (foo) //evaluates to false because foo === undefined
复制代码
  1. someExistingObj.someUndefProperty

  2. undefined

  3. false

  4. 0

  5. false

  6. if(obj.undefProp)

  7. value = obj.prop || defaultValue

  8. obj

  9. prop

  10. value

  11. defautValue

  12. in

  13. value = ('prop' in obj) ? obj.prop : defaultValue
复制代码






上一篇:将超时设置为 fs.copy 函数
下一篇:验证 node.js 实例是 dev 还是 production

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表