https://medium.com/laboratoria-developers/por-valor-vs-por-referencia-en-javascript-de3daf53a8b9
const frutas = ['manzana', 'pera', 'kiwi'] const frutas2 = frutas // NO SE COPIA EL VALOR SE COPIA LA REFERENCIA Se apunta al mismo sitio // Tanto frutas como frutas 2 son como una flecha que apunta al mismo contenido // Si yo cambio fruta, también cambio fruta2 // Se suele decir que necesitamos 'clonar' el array console.log(frutas) console.log(frutas2) frutas.push('melón') console.log(frutas) console.log(frutas2) let a = 20 const b = a // Copiar el valor a++ console.log(a) // 21 console.log(b) // 20 // a |20| // frutas es un puntero al contenido del array // frutas2=frutas lo que copio es la dirección no el contenido const a = [1, 2, 3, 4] console.log(sumaArray(a)) console.log(a) // Esta función nos suma el array pero también nos lo destruye // Porque no se pasa una copia se pasa el propio array // la REFERENCIA al array. Mucho cuidado con esto function sumaArray (array) { let suma = 0 while (array.length > 0) { suma += array.pop() } return suma } // SOlución function sumaArrayBien (array) { let suma = 0 const copia = array.slice() while (copia.length > 0) { suma += copia.pop() } return suma } function sumaSinModificacion (array) { let suma = 0 for (const v of array) { suma += v } return suma }