js 奇葩问题 求高手解答

不科学两次打印arr1 怎么会是一样的?

image;

上代码

var arr1 = [{
    pn: 1,
    bn: 2,
    name: '231'
}];
console.log(arr1);
for(var i = 0;i<arr1.length;i++){
    arr1[i] = {
        pn: '',
        bn: ''
    }
};
console.log(arr1)
阅读 1.8k
2 个回答

devtool在展开console的时候会重新读取一次内存堆的值,自然一样。你可以输出

console.log(JSON.stringify(arr1))
console.time(2);
var arr1 = [{
    pn: 1,
    bn: 2,
    name: '231'
}];
console.log(arr1);
console.timeEnd(2);
console.time(3);
for(var i = 0;i<arr1.length;i++){
    arr1[i] = {
        pn: '',
        bn: ''
    }
};
console.log(arr1)
console.timeEnd(3);

打印发现执行时间不一样。可能正如楼上所说那样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题