Chrome控制台错误?

时间:2017-10-26 13:56:09

标签: javascript ecmascript-6 google-chrome-devtools web-inspector

这个问题没有任何疑问或问题。显然我似乎偶然发现了Chrome控制台上的一个错误,

我使用此代码:

console.log("Before: ", this.selectedScorecard.scorecard_attributes);
let attribute = this.selectedScorecard.scorecard_attributes.find(item => item.id === null || item.id === undefined)

if(attribute) {
   let length = this.selectedScorecard.scorecard_attributes.length;
   this.selectedScorecard.scorecard_attributes.splice(length-1, 1);
   console.log("After: ", this.selectedScorecard.scorecard_attributes);
}

好的,所以属性是一个数组,它最初是一个长度为2的数组。 现在我正在拼接阵列中的一个项目并在拼接之前和之后打印它的值。

在数组之前的代码段中的chrome控制台中,它显示(2)表示长度为2但在数组本身中它显示的长度为1,并且在“数组的控制台之前”中只显示一个项目 而事情显然在“后控制台”的预期 我附上一张图片以便更好地理解 enter image description here

我很好奇,有没有人对此有任何想法?有没有人面对这个或者我只是注意到它?

1 个答案:

答案 0 :(得分:4)

当console.log运行时,chrome会同步注销其中的内容摘要。该数组有2个元素,因此摘要记录a(2)。如果您稍后决定要查看更多数据,Chrome会保留对该数组的引用,但它不会克隆整个数组。

稍后,当您单击以展开数组时,它会显示更多详细信息,但它会根据展开时的外观显示,而不是在最初发生日志语句时显示的内容。因为它只有一个元素,就是它显示的内容。