有一个条件是检查字段是否存在,如果字段存在,我们处理它,但是我们遇到了一个非常令人惊讶的结果。在示例中,您将了解一切:)
事实上,如果有data.visible
,它应该返回VISIBLE
,但既然它进来了false
,它就会跳过它。谁能为这项任务提出最佳解决方案?
function result(data) {
if (data.visible) {
return 'VISIBLE: ' + data.visible;
} else {
return 'NOT VISIBLE';
}
}
console.log('OK', result({
visible: true
}))
console.log('OK', result({
visible: false
}))
console.log('FAIL', result({}))
您很可能需要in运算符。您可能还对hasOwnProperty方法感兴趣。
运算符检查该属性是否存在于对象本身或其原型链中的祖先之一中
in
(即使其值为“假”(0
、空字符串、undefined
、null
、 ))。做同样的事情,但不会爬进原型链(顾名思义)。false
hasOwnProperty