Clonado de Arrays en Javascript

Como vimos en otro post, Paso por Valor Paso por Referencia, los elementos que no son tipos primitivos, al igualarlos a otros, se pasa la referencia.

var equipo1 = ["a","b","c"];
var equipo2 = ["d","e","f"];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1 = equipo2;
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1[0] = "X";
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

¿Entonces como hacemos para copiar solamente el valor de un Array a otro en Javascript?

Método 1: Slice()

var equipo1 = ["a","b","c"];
var equipo2 = ["d","e","f"];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1 = equipo2.slice();
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1[0] = "X";
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

Método 2: Creando un nuevo array y concatenando el viejo en el.

var equipo1 = ["a","b","c"];
var equipo2 = ["d","e","f"];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1 = [].concat(equipo2);
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1[0] = "X";
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

Método 3: La nueva forma de ES6 con el operador Spread:

var equipo1 = ["a","b","c"];
var equipo2 = ["d","e","f"];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1 = [...equipo2];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1[0] = "X";
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

Método 4: Con Array.from:

var equipo1 = ["a","b","c"];
var equipo2 = ["d","e","f"];
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1 = Array.from(equipo2);
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);

equipo1[0] = "X";
console.log("Equipo1:",equipo1,"\nEquipo2:",equipo2);