배열의 요소를 하나씩 가져와서 사용하지 않고 spread 문법을 사용해 한번에 적용시켜보자
spread 문법
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
sum(...numbers)
// 6
- spread 문법은 기존 원본을 변경하지 않는다.
- sum함수의 인자에 numbers 배열의 요소들을 모두 넣고 싶을 때?
- ' ... ' + 배열 변수명을 써주면 된다.
배열 합치기
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
// arr1 = [0, 1, 2, 3, 4, 5];
배열 복사
let arr = [1, 2, 3];
let arr2 = [...arr]; // arr.slice() 와 유사
arr2.push(4);
// 참고: spread 문법은 기존 배열을 변경하지 않으므로(immutable), arr2를 수정한다고, arr이 바뀌지 않습니다.
// arr = [1, 2, 3]
// arr2 = [1, 2, 3, 4]
객체에서 사용하기
let obj1 = { foo: 'bar', x: 42 };
let obj2 = { foo: 'baz', y: 13 };
let clonedObj = { ...obj1 };
let mergedObj = { ...obj1, ...obj2 };
// cloneObj = {foo: 'bar', x: 42}
// mergeObj = {foo: 'baz', x: 42, y: 13}
// 객체에서 복사할 때 같은 키와 값을 가지고 있으면 뒤에 들어오는 객체껄로 덮어쓰기가 됨
함수에서 나머지 파라미터 받아오기
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a);
console.log("b", b);
console.log("manyMoreArgs", manyMoreArgs);
}
myFun("one", "two", "three", "four", "five", "six");
// a, one
// b, two
// manyMoreArgs['three', 'four', 'five', 'six']
// 위에서 콘솔된 a,b를 제외한 나머지 값들이 배열로 묶여서 콘솔됨.'javaScript' 카테고리의 다른 글
| DOM(Document Object Model)의 구조 (0) | 2022.11.18 |
|---|---|
| 구조분해 할당 사용하기 (0) | 2022.11.17 |
| 클로저 모듈 패턴에 대해 (0) | 2022.11.17 |
| 스코프와 클로저 (0) | 2022.11.17 |
| 객체 key 추가/삭제/확인 (0) | 2022.11.04 |