ECMAScript6 - Spread
Spread 연산자는 이터러블 오브젝트의 엘리먼트를 분리하여 전개한다. 전개한 결과를 변수에 할당하거나 함수의 파라미터로 사용할 수 있다. 1. Array 오브젝트 2. String 오브젝트 3. 함수의 파라미터로 사용 ...rest 파라미터 Array-like Array는 아니지만 Array처럼 사용할 수 있는 Object 오브젝트를 Array-like라고 한다. ES6 스펙에서 사용하는 공식 용어. key값이 0부터 시작해서 1씩 증가하고 length 프로퍼티가 있어야한다. 둘 중 하나라도 만족하지 않으면 Array-like가 아니다. ...rest파라미터와 Arguments Argument 는 function 키워드로 함수를 정의 했을 때 사용이 가능하다. get(1,2,3)으로 호출했을 때, 호출받는 함수의 arguments에 1,2,3이 설정된다. arguments도 Array-lik e이므로 for()문으로 전개가 가능하다. 따라서 Array 오브젝트와 메서드를 사용이 불가능하다. 단점 - 함수안의 코드를 보아야 arguments의 사용 여부와 사용 부분을 알 수 있어 코드 가 독성이 떨어진다. 많은 코드를 디버깅하거나 소스 코드를 리팩토링할 때 부담이 된다. ...rest 파라미터는 arrow function 으로 함수를 정의 했을 때 사용이 가능하다. ...rest 파라미터는 Array 오브젝트로 이터러블 오브젝트이다. 따라서 Array 오브젝트의 메서드를 사용할 수 있다. 장점 - 함수안의 코드를 체크하지 않고 (one, ...rest) 형태만 보아도 rest 파라미터의 범위를 알 수 있다.