Spread
- 배열을 풀어서 인자로 전달하거나 배열을 풀어서 각각의 요소를 넣을 때 (요소를 펼쳐 넣는다.)
- 기존의 배열을 변경하지 않는다. (Immutable)
- 즉, 기존의 배열을 변경하지 않고 추가할 때 용이하다.
function sum(x, y, z){
return x+y+z;
}
let numbers = sum(1, 2, 3);
sum(...numbers); // 1 + 2 + 3 = 6
let arr1 = [1, 2, 3];
let arr2 = [...arr1]; // arr1.slice()와 유사
Rest
- 배열 비구조 할당 (원하는 값을 꺼내고 나머지 값을 rest에 집어 넣는다)
- 파라미터를 배열의 형태로 받아서 사용할 수 있다.
- 객체, 배열, 함수의 파라미터에서 사용 가능하다.
구조분해
const
- const로 배열의 요소를 추가, 삭제 가능하다.
to.deep.equal
- 배열이나 객체의 요소가 같은지 확인한다. (값으로 검사한다.)
얕은 복사 vs 깊은 복사
얕은 복사
- 기존의 객체를 새로운 객체에 할당하면 얕은 복사가 된다.