JavaScript - spread operator
in JS on 공부, Javascript
spread operator(펼치기 연산자. 전개 연산자)
var birds = ['eagle', 'pigeon']
var mammals = ['rabbit', 'cat']
var animals = birds.concat('whale').concat(mammals) //['eage','pigeon', 'whale', 'rabbit', 'cat']
const animals2 = [...birds, 'whale', ...mammals] //이래도 같다. 쭉 펼치는 거..
배열의 각 인자를 펼친 효과
const values = [20, 10, 30]
console.log(...values) //20 10 30
console.log(Math.max(20,10,30,50,40))
console.log(Math.max.apply(null, values))
console.log(Math.max(...values))
앞 뒤로 다른 값들을 함께 사용 가능
const values = [3,4,5,6,7,8]
const sum = (...args) => args.reduce((p, c)=> p+c)
console.log(sum(1, 2, ...values, 9, 10))
getter : 나머지 / 받는 입장 setter : 펼치기 / 주는 입장
iterable한 데이터는 다 펼칠 수 있다.
배열처럼 인덱스가 있고 인덱스마다 값이 할당이 되어서 순회하면서 하나하나 찾아낼 수 있는 애들
const str = 'hello!'
//둘다 같은 애들이다.
const splitArr = str.split('')
const restArr = [...str]
const set = new Set();
set.add(1).add(3).add(5)
console.log(...set)
push, unshift, concat 대체할 수 있다.
let originalArr = [2,3]
const preArr = [-2, -1]
const sufArr = [6,7]
originalArr.unshift(1) // 원래배열에 추가. 이런게 비용이 더 든다. 맨 앞에 원소 추가.
originalArr.push(4) // 원래배열에 추가.
originalArr = [0, ...originalArr, 5] //새로운 배열
얕은 복사만을 수행한다.
let originalArray = [{
first : 'Hello, ',
second: 'World!'
},
{
first: 'Welcome',
second: 'ES6!'
}]
let copiedArray = [...originalArray]
copiedArray[0].first = "Hi." //originalArray[0] 값도 바뀐다.
tc39 : 에크마 스크립트를 재정하는 위원회. javascript에 대한 표준 규약 정의하는 집단.
es3 : 199x es5 : 2009 es6 : 2015. tc39 //많은 변화 es2016 : 2016 es2017
전세계 사람들한테 ‘이 기능 추가해주세요’ 라는
stage 0: 제안을 받아 stage 1 : 검토 stage 2 : 구체화 stage 3 : 도입 예정 stage 4: 도입 확정
이거를 proposal이라 한다.