01. Spread 연산자 - 스프레드(Spread) 연산자와 Rest 파라미터
iterable object의 element를 하나씩 분리하여 전개한다.
iterable 객체는 반복 객체로써 객체의 원소에 하나씩 차례로 접근 가능하다.
' ... ' 점 세개로 시작해서 뒤에 이터러블 오브젝트를 써주면 된다.
[...iterableObj]
function(...iterableObj){ }
예시
let first = [1,2];
let last = [9,10];
let result = [...first, 3,4,5,6,7,8, ...last];
console.log(result);
결과 값
1,2,3,4,5,6,7,8,9,10
...first를 전개하여 1,2의 값을 result의 배열에 넣어준다.
그 후 3~8까지의 숫자가 배열에 들어있고 ...last를 전개하여 9,10을 result의 배열에 넣어줌으로써
1~10까지의 결과 값이 나온다.
(전개 시 result의 length 값은 10, 전개가 안되면 8)
문자열 전개 시에는 string 오브젝트가 iterable 오브젝트 이므로 쓸 수 없다.
let spreadObj = [...'okayoon'];
console.log(spreadObj);
결과 값
['o','k','y','o','o','n']
파라미터로 넘길 때 (spread parameter)
const number = [1,2,3];
getNum(...number);
function getNum(num1,num2,num3){
console.log(num1, num2, num3);
}
결과 값
num1 = 1
num2 = 2
num3 = 3
함수 호출 전에 ...number를 전개한 후 파라미터로 전달하기 때문에 결과 값과 같은 형태가 된다.
호출하는 함수의 파라미터 값이 분리된 형태를 spread 파라미터라고 한다.
'Javascript' 카테고리의 다른 글
e.target.dataset과 jQuery의 .data()의 결과 값은 다를 수 있다. (0) | 2019.11.15 |
---|---|
태그 내부에 컨텐츠 추가하기 append(), prepend(), appendTo(), prependTo(), before(), after() (0) | 2019.10.02 |
placeholder.js 라이브러리 소스 분석 도전, 스터디 개념 (0) | 2019.06.05 |
02. Rest 파라미터 - 스프레드(Spread) 연산자와 Rest 파라미터 (0) | 2018.10.29 |
Google Javascript Maps API를 사용하여 지도 올리기! (0) | 2018.10.26 |
ajax 이슈, 파라미터 값이 안 보내져요. (processData) (0) | 2018.10.24 |
input 포맷(전화번호 입력받기)__regex__replace__substr (0) | 2018.10.24 |
버튼 클릭하여 해당영역으로 스크롤 이동하기 scrollintoview(); (0) | 2018.10.23 |