对象中同名键与对象键的问题

88 阅读1分钟

1、如果对象有两个具有相同名称的键,则将替换前面的键。它仍将处于第一个位置,但具有最后指定的值。

const obj={a:'张三',b:'李四',a:'老六'}
console.log(obj)

其结果为{a:'老六',b:'李四'} 可以看到键a仍然在第一位,但是值为最后指定的值

2、如果一个对象的键也为一个对象,那么键会自动转换成字符串

const a={}
const b={key:'b'}
const c={key:'c'}
a[b]=123
a[c]=456

console.log(a[b])

打印结果为456,为什么呢? 因为对象键会自动转换为字符串。 上述场景中a[b]=123等同于a["Object Object"]=123 a[c]=456同理 因此a[b]和a[c]实际上是同一个对象的同一个键所对应的值,所以为456