引用类型的踩坑记录

103 阅读1分钟

const arr = new Array(3).fill([]);

arr[0].push(2);

console.log(arr);

arr => [[2],[2],[2]];

原因:

因为arr在实例化的时候是通过fill填充了一个空数组,所以arr的每个子元素都指向同一个数组的地址。
所以其中一个push(2),相当于是给’每项‘都push(2),所以最终打印结果为[[2],[2],[2]]