Shallow vs Deep Cloning

// shallow clone/copy:
let arr2 = [].concat(arr1);
let arr3 = [...arr1];
let obj2 = Object.assign({}, obj1); 
let obj3 = {...obj1};

// deep clone/copy
let obj2 = JSON.parse(JSON.stringify(obj1)); // old approach
let obj3 = structuredClone(obj1); // new approach