数字值存在 JS 检查属性



我使用以下示例来检查对象上是否存在属性。

const payload ={payment:0}
if(payload && payload.payment){
console.log(payload.payment)
}else{
console.log('Issue')
}

但它失败,值为 0(零(。

这个问题是关于一个具有整数键的对象,当键值为零时,大多数其他答案都不起作用。

要查看对象中是否存在属性payment,您可以编写payload

'payment' in payload

或者,如果您想知道属性是否直接在对象中定义(而不是通过原型继承(,请说

payload.hasOwnProperty('payment')

表达式payload.payment,当值为 0 时,用作布尔值时将产生false。这是因为以下值将始终像false

  • 0
  • false
  • NaN
  • undefined
  • null
  • 空字符串

这些值的技术术语,作为false,是"虚假的"。所以因为 0 是假的,所以每当你写!payload.payment时,这个值实际上是true的,0的,false的。使用上述两种技术之一(inhasOwnProperty(检查缺少的属性。

相关内容

最新更新