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.

Referências