Valores primitivos e Valores por referência
Os valores por referência em JavaScript são mutáveis. Ao atribuir uma variável A que armazena um tipo por referência (object, array, function, etc.) a uma variável B, B armazenará a referência para esse valor. Portanto, se uma das variáveis tiver seu valor alterado, a outra também sofrerá essa alteração.
let a = [1, 2, 3];
let b = a;
console.log(a, b); // [ 1, 2, 3 ] [ 1, 2, 3 ]
a.push(4);
console.log(a, b); // [ 1, 2, 3, 4 ] [ 1, 2, 3, 4 ]Neste exemplo, ambas as variáveis a e b apontam para o mesmo array na memória. Quando adicionamos o valor 4 ao array através da variável a, a variável b também reflete essa alteração.