const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2)); //end가 생략되면 start부터 끝까지 추출
// expected output: Array ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4));
// expected output: Array ["camel", "duck"]
console.log(animals.slice(1, 5));
// expected output: Array ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2)); //배열 마지막에서 두개를 추출
// expected output: Array ["duck", "elephant"]
console.log(animals.slice(2, -1));
// expected output: Array ["camel", "duck"]
console.log(animals);
//Array ["ant", "bison", "camel", "duck", "elephant"]
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
months.splice(3, 2, 'Spring');
// replaces 2 element at index 3
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "Spring"]
❓ 얕은복사(참조복사)와 깊은복사
- 얕은복사(참조복사)는 복사하는 행위가 단순히 다른 이름을 붙이는 형태로 동작한다. 즉, 복사하더라도 같은 메모리를 바라보고있기 때문에 값을 변경하면 함께 변경된다.
대입하지 않아도 값이 함께 변경된다.
(배열의 값 복사)- 깊은복사: 복사 후 두 객체를 완전히 독립적으로 사용한다.
대입을 통해 변경한 값을 가져올 수 있다.
(자료형(ex. String, Number, boolean)의 값 복사)