console.log(...[1,2,3]) //1 2 3
const nums = [1, 2, 3];
console.log(Math.max(...nums)); // 3
즉, 아래 max함수를 호출시 nums 배열인자를 1,2,3 이란 개별인자로 전달한다. 원래같으면 Math.max([1,2,3]) NaN을 반환한다.
배열을 펼쳐서 개별적인 값들의 목록으로 만든 후, 이를 함수의 인수 목록으로 전달해야 하는 경우
Math.max([1,2,3]); 숫자가 아닌 배열을 인수로 전달하면 최대값을 구할 수 없으므로 NaN을 반환한다.
스프레드 문법이 제공되기 이전에는 배열을 펼쳐서 요소들의 목록을 함수의 인수로 전달하고 싶은경우 function.prototype.apply 사용
var arr = [1,2,3];
//ES6전
var max = Max.max.apply(null, arr)
//ES6이후
const max = Math.max(...arr)
2개의 배열을 1개의 배열로 결합할때
var arr = [1,2].concat([3,4]);
console.log(arr) //[1,2,3,4]
//ES6 이후
const arr =[..[1,2], ...[3,4]];
console.log(arr); //[1,2,3,4]
Rest 파라미터란?
※ 매개변수 이름 앞에 ...을 붙이는 것으로 스프레드와 헷갈리지 말 것
function example(apple, banana, ...rest) {
console.log(apple); // 1
console.log(banana); // 2
console.log("rest:", rest); // 3, 4, 5
}
example(1, 2, 3, 4, 5);
같은 결과값을 도출하는 방법을 ES6 업데이트전후의 기능들로 비교했다. 또 한번 업데이트가 가져온 코드의 간결함과 가독성 향상을 확인할 수 있었던거 같다.