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-like이므로 for()문으로 전개가 가능하다.
따라서 Array 오브젝트와 메서드를 사용이 불가능하다.
단점 -

...rest파라미터는 arrow function 으로 함수를 정의 했을 때 사용이 가능하다.
...rest 파라미터는 Array 오브젝트로 이터러블 오브젝트이다. 따라서 Array 오브젝트의 메서드를 사용할 수 있다.
장점 -
전개한 결과를 변수에 할당하거나 함수의 파라미터로 사용할 수 있다.
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-like이므로 for()문으로 전개가 가능하다.
따라서 Array 오브젝트와 메서드를 사용이 불가능하다.
단점 -
- 함수안의 코드를 보아야 arguments의 사용 여부와 사용 부분을 알 수 있어 코드 가 독성이 떨어진다.
- 많은 코드를 디버깅하거나 소스 코드를 리팩토링할 때 부담이 된다.
...rest파라미터는 arrow function 으로 함수를 정의 했을 때 사용이 가능하다.
...rest 파라미터는 Array 오브젝트로 이터러블 오브젝트이다. 따라서 Array 오브젝트의 메서드를 사용할 수 있다.
장점 -
- 함수안의 코드를 체크하지 않고 (one, ...rest) 형태만 보아도 rest 파라미터의 범위를 알 수 있다.
댓글
댓글 쓰기