기반을 다지자 ES6

전개연산자 Spread

Jungsoomin :) 2020. 10. 1. 21:52

전개연산자... 을 사용하며, 객체나 배열을 복사하여 값을 추가할 때 사용한다.

 

객체의 전개연산

//spread

// 객체와 배열의 배부, 함수의 인자에서 사용.
// 이거받고 이거 추가해 :)
//거대한 객체에서 값을 추가하고 싶을때 사용한다.

const student = {
	"name" : '김구름'
}

const univStudent = {
	...student,
	"major" : '컴퓨터 공학과' 
}

const univvvStudent = {
	...student,
	...univStudent,
	"class":'B'
}


console.log(student, univStudent, univvvStudent);
//{ name: '김구름' } { name: '김구름', major: '컴퓨터 공학과' } { name: '김구름', major: '컴퓨터 공학과', class: 'B' }

배열의 전개연산

const addNumbers = [1,3,5,7,9];
const eventNumbers = [2,4,6,8,10];

const allNumbers = [...addNumbers, ...eventNumbers, 11];

console.log(allNumbers);
//[ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 11 ]

함수 인자로서의 전개연산 < **

직접 작성해본 예제인데, 생각할게 꽤 있다. 변수의 스코프와 전개연산, forEach 와 map 중 함수의 선택, 내부 함수의 화살표 함수.

// 전개연산자는 함수의 인자 값에 많이 쓰인다.
const sum = (...allNumbers) => {
	let summ = 0;
	allNumbers.map( num => summ += num);
	return summ;
}

console.log(sum(...allNumbers));

//66

Rest 인자를 한번에 배열이나 객체로 받아들이는 방식, 디스트럭쳐링에서 다른 값을 분리

const addNumbers = [1,3,5,7,9];
const eventNumbers = [2,4,6,8,10];

const allNumbers = [...addNumbers, ...eventNumbers, 11];


console.log(...allNumbers);
// 1 3 5 7 9 2 4 6 8 10 11 <<< 전개 연산시 각 값들로 나뉜다.


// Rest 문법은 함수의 인자를 객체, 배열화한다.
const sum = (...allNumbers) => {
	console.log(allNumbers);// [ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 11 ] <<< 맵핑 시켰다.
	let summ = 0;
	allNumbers.map( num => summ += num);
	return summ;
}


sum(...allNumbers);

//rest 문법은 부분 집합을 만들어 낸다.
const koreanUnivStudent = {
	"name":'김구름',
	"major":'컴공',
	"region":'서울'
}

const {name, ...rest} = koreanUnivStudent;

console.log(rest);

 

'기반을 다지자 ES6' 카테고리의 다른 글

모듈  (0) 2020.10.01
Class  (0) 2020.10.01
구조 분해 할당. Destructuring  (0) 2020.10.01
JS 코드 스타일  (0) 2020.10.01
배열의 정체와 길이  (0) 2020.10.01