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 오브젝트와 메서드를 사용이 불가능하다.

단점  -

  • 함수안의 코드를 보아야 arguments의 사용 여부와 사용 부분을 알 수 있어 코드 가    독성이 떨어진다.
  • 많은 코드를 디버깅하거나 소스 코드를 리팩토링할 때 부담이 된다.




...rest파라미터는 arrow function 으로 함수를 정의 했을 때 사용이 가능하다.
...rest 파라미터는 Array 오브젝트로 이터러블 오브젝트이다. 따라서 Array 오브젝트의 메서드를 사용할 수 있다.

장점 -

  • 함수안의 코드를 체크하지 않고 (one, ...rest) 형태만 보아도 rest 파라미터의 범위를 알 수 있다.

댓글

이 블로그의 인기 게시물

About JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째