代码之家  ›  专栏  ›  技术社区  ›  Manzur Khan

Chrome控制台错误?

  •  3
  • Manzur Khan  · 技术社区  · 7 年前

    这个问题没有任何疑问或问题。显然,我似乎在chrome控制台上偶然发现了一个bug,

    我使用以下代码:

    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的数组。 现在我从数组中拼接一个项目,并在拼接前后打印其值。

    而在“后控制台”中,事情显然与预期一样 为了更好地理解,我附上了一张图片 enter image description here

    我很好奇,有人知道这件事吗?以前有人面对过这个问题吗?还是只有我一个人注意到了?

    1 回复  |  直到 7 年前
        1
  •  6
  •   Nicholas Tower    7 年前

    当控制台。日志运行时,chrome会同步注销其中的内容摘要。该数组有2个元素,因此摘要记录一(2)。Chrome保留了对阵列的引用,以备您以后决定查看更多数据时使用,但它不会克隆整个阵列。

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