gpt4 book ai didi

javascript - Object.keys() 和 Object.hasOwnProperty() 之间的区别?

转载 作者:行者123 更新时间:2023-12-02 20:53:16 25 4
gpt4 key购买 nike

当测试一个对象是否有键时,我们可以使用Object.keys()Object.hasOwnProperty()

考虑一个对象{ a: 1 }

console.log(Object.keys({ a: 1 })); // [ 'a' ]

现在,当我使用Object.hasOwnProperty()时,我得到true:

console.log('a' in { a: 1 }); // true

console.log({ a: 1 }.hasOwnProperty('a')); // true

但是如果我使用Object.keys(),我会得到false:

console.log('a' in Object.keys({ a: 1 })); // false

为什么是

最佳答案

实际上 Object.keys({ a: 1 }) 将返回 [ 'a' ],它是一个包含对象键的数组。该语句将返回false:

console.log('a' in ['a']); // false

所以你可以使用:

console.log(Object.keys({ a: 1 }).includes('a')); // true

但简单地使用更直接:

console.log({ a: 1 }.hasOwnProperty('a')); // true

关于javascript - Object.keys() 和 Object.hasOwnProperty() 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61552262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com