【发布时间】:2019-05-16 12:19:38
【问题描述】:
我对 Javascript 有点陌生,想要澄清一些事情,我读过一些关于提升的东西,觉得这可能是我问题的原因和答案,但为什么日志会注销我的常量的最后一个分配?
const people = [
{
name: "Roger",
age: 29,
role: "Secret Agent"
},
{
name: "Jamie",
age: 35,
role: "Secret Agent"
}
]
console.log("people", people);
people[0].name = 'bob';
console.log("people", people);
两个结果都显示 bob 而不是 Roger 然后是 Bob。
如果有人能解释为什么会发生这种情况,那就太好了。
【问题讨论】:
-
那是因为浏览器的控制台是如何工作的,它只有在您在控制台中展开该对象时才解析对该对象的引用。
-
就像@Titus 说的那样。我总是忘记这一点。在将对象记录到控制台时,避免这种黑魔法的一个好方法是始终记录对象的 JSON 格式:
console.log('people:', JSON.stringify(people));
标签: javascript ecmascript-6 console.log