IIUC Array.slice(0)
returns a copy of the array. Is it a shallow copy? In other words the array items still have the same memory location, but the array container gets assigned a new one?
Effectively:
let oldArray = ['old', 'array'];
let newArray = oldarray.slice(0);
let same = oldArray[0] === newArray[0]; //true
let same = oldArray === newArray; //false