배열의 복사 (immutable array)
spread operator를 번역하면 펼침 연산자 입니다.
이 연산자는 ... 를 사용합니다.
마치 String의 concat이 새로운 공간을 할당받아 이어진 문자열을 만들어 주는것 처럼,
spread operator를 사용하면 새로운 공간을 할당받아 복사된 값을 가진 배열을 만듭니다.
let pre = ["apple", "banana", 100];
let newData = [...pre];
console.log(pre, newData);
console.log(pre === newData);
물론 참조가 아닌 복사이기 때문에 === 연산자로 비교하면 false가 나옵니다.
배열을 합침
let pre = [10,20,30];
let result = ['a', 'b', ...pre, 'c'];
console.log(result); // => ['a', 'b', 10, 20, 30, 'c']
배열 중간에 다른 배열을 끼워넣고 싶을 때 spread operator를 이용해서 간단하게 합칠 수 있습니다.
함수의 매개변수로 쉽게 전달
function sum (a,b,c) {
return a+b+c;
}
let pre = [10, 20, 30];
console.log(sum.apply(null, pre)); // 이전에 사용했던 방법 중 하나
console.log(sum(...pre)); // spread operator 사용
배열을 그대로 매개변수에 넣고 싶을 때 보다 쉽게 전달할 수 있습니다.
'Javascript' 카테고리의 다른 글
[JS/ES6] template, tagged template literals (0) | 2019.02.04 |
---|---|
[JS/ES6] from 메서드 (진짜 배열 만들기) (0) | 2019.02.03 |
[JS/ES6] for in의 단점, for of의 등장 (0) | 2019.02.03 |
[JS/ES6] 추가된 String의 메서드들 (0) | 2019.02.02 |
[JS] 클로저(closure) (0) | 2019.02.02 |