输出什么?
javascript
const info = {
[Symbol('a')]: 'b'
}
console.log(info)
console.log(Object.keys(info))A. {Symbol('a'): 'b'} and ["{Symbol('a')"] B. {} and [] C. { a: "b" } and ["a"] D. {Symbol('a'): 'b'} and []
答案: D
解析:
Symbol类型是不可枚举的。Object.keys方法返回对象上的所有可枚举的键属性。Symbol类型是不可见的,并返回一个空数组。 记录整个对象时,所有属性都是可见的,甚至是不可枚举的属性。 这是Symbol的众多特性之一:除了表示完全唯一的值(防止对象意外名称冲突,例如当使用2个想要向同一对象添加属性的库时),您还可以隐藏这种方式对象的属性(尽管不完全。你仍然可以使用Object.getOwnPropertySymbols()方法访问 Symbol。