Estoy aprendiendo javascript y leí que en la matriz de javascript y los objetos se pasan de forma predeterminada como referencia. Así que cuando hago esto:-
var a = [2, 3, 4] function pushEl(a, num) { a.push(num) } pushEl(a, 5) console.log(a)
La salida es la esperada, que es
[2,3,4,5]
Pero lo que no puedo entender es que cuando asigno valor a una matriz o un objeto dentro de la función, la matriz/objeto original no cambia.
var a = [2, 1, 3] function change(a) { a = [1, 2] } change(a) console.log(a)
Espero que la salida sea [1,2]
pero la salida es [2,1,3]
.
Si la matriz se pasa por referencia, los cambios también deberían haberse reflejado en la matriz original.
¿Alguien puede decirme qué concepto me estoy perdiendo aquí?