Array mutability and variable reference scenario is unclear

Don*_*Joe 1 javascript variables mutability

So, I understand that arrays in JavaScript are mutable.

意味着如果我创建数组a和数组b = a,那么如果我修改数组a,修改在数组中也可见b

但是,在以下情况下,我不明白为什么b会丢失对array的“引用” a

var a = [1,2,3];
var b = a;

console.log('a =', a);
console.log('b =', b);

a[0] = 4;
console.log('a =', a);
console.log('b =', b);

a = [5,5];
console.log('a =', a);
console.log('b =', b);
Run Code Online (Sandbox Code Playgroud)

Tyl*_*per 6

a并且b不是互相引用-它们是对同一数组的引用。

当您这样做时a = [5,5],您将设置a为一个全新的数组,同时b仍然引用旧的数组。

  • @DoJoe JavaScript没有使变量保持指针的功能,因此您没有,但是您可以尝试将a设置为b并使b为`{value:[1,2,3]}`然后可以设置b。值变为任何值,而a.value将改变。 (3认同)