为什么我可以清空数组,即使它是引用类型?
为什么我可以清空数组,即使它是引用类型?
这个问题已经有答案了:
我目前正在学习JS中的数组。
令我困惑的是数组就像对象一样是引用类型。
所以,如果我创建了对同一数组的新引用(变量)并将其清空,无论我是否使用“const”或“let”关键字声明它,它都应该在两个引用处都清空数组。
但是,如果我使用“let”关键字重新分配原始数组,我可以清空原始数组,但属于新引用的数组不会清空吗?
我认为下面的代码更清楚:
const array1 = [1, 2, 3] const array2 = array1 array1.length = 0; console.log(array1) //Outputs [] console.log(array2) //Outputs [] //So both arrays are emptied which makes sense as a reference type but... let array3 = [1, 2, 3] let array4 = array3 array3 = [] console.log(array3) //Outputs [] console.log(array4) //Outputs [1,2,3] //what is going on here? I thought all arrays are reference types regardless of using const or let?
admin 更改状态以发布 2023年5月21日