【问题标题】:Preferred way to check object property is `null` or `undefined` [duplicate]检查对象属性的首选方法是“null”或“undefined”[重复]
【发布时间】:2017-06-06 15:50:54
【问题描述】:

如果我的某个对象具有可能存在也可能不存在属性,是否有首选方法来检查其是否存在?

// Good?
(someObj.property !== undefined && someObj.property !== null)

// Better?
(typeof someObj.property !== 'undefined')

// Best?
(someObj.property != null)

*最后一个!=运算符是on purpose:

必须使用严格相等检查 (===) 来支持抽象相等检查 (==)。唯一的例外是通过null 检查undefinednull。在逻辑上可能只遇到nullundefined 之一的情况下(例如未初始化的变量),也可以使用== null

【问题讨论】:

  • 第一个和最后一个是等价的。中间的不会检查null 值。所以首先这取决于你想要什么。然后就看你想输入多少了;)是否使用!= null是个人喜好。
  • if(someObj.property) 除了布尔值之外的所有内容?
  • @Jonasw:还有空字符串,0NaN
  • 什么是现有属性?是否存在虚假值?

标签: javascript object logic


【解决方案1】:

【讨论】:

  • 取决于是否应考虑 null 值。
  • 请为您的链接提供更多详细信息。查看How to Answer了解更多详情。
  • 这不是在检查属性的值,而不是属性本身是否存在吗?
猜你喜欢
  • 2022-12-14
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2013-12-26
  • 1970-01-01
  • 2014-05-08
  • 2018-01-01
相关资源
最近更新 更多