Javascript 数值存在JS Check属性
我使用了下面的示例来检查对象上是否存在属性Javascript 数值存在JS Check属性,javascript,ecmascript-6,Javascript,Ecmascript 6,我使用了下面的示例来检查对象上是否存在属性 const payload ={payment:0} if(payload && payload.payment){ console.log(payload.payment) }else{ console.log('Issue') } 但它以0(零)值失败 这个问题是关于一个具有整数键的对象,当键值为零时,大多数其他答案都不起作用。若要查看对象有效负载中是否存在属性付款,可以编写 'payment' in payload
const payload ={payment:0}
if(payload && payload.payment){
console.log(payload.payment)
}else{
console.log('Issue')
}
但它以0(零)值失败
这个问题是关于一个具有整数键的对象,当键值为零时,大多数其他答案都不起作用。若要查看对象
有效负载中是否存在属性付款
,可以编写
'payment' in payload
或者,如果您想知道属性是否直接在对象中定义(而不是通过原型继承),可以说
当值为0时,表达式payload.payment
将在用作布尔值时生成false
。这是因为以下值的行为总是类似于false
:
0
false
NaN
未定义
null
- 空字符串
这些值的技术术语为“falsy”,充当false
。因此,因为0是falsy,所以无论何时编写!payload.payment
,对于0
而言,此值实际上为true
,对于其他所有内容而言,此值实际上为false
。使用上述两种方法之一(中的或hasOwnProperty
)检查缺少的属性。您尝试过吗<代码>付款中的“有效载荷”
确实有效。@FlorianWeimer我在lodash中发现has
也可以这样做。我在lodash中发现has
也可以这样做。
payload.hasOwnProperty('payment')