2020.09.05 - [웹 프론트엔드/자바스크립트] - [ES6] 객체 확장 표현(Destructuring) 및 구조 분해 할당
배열 전개 연산자
ES6에서 새로 나온 문법으로 굉장히 중요하면서 강력한 기능입니다. 기존 배열 요소를 다룰 때는 index를 사용해 풀어쓰거나, 내장 메서드를 사용했지만 전개 연산자를 사용하면 간단하게 내용을 전달하고 표현할 수 있습니다.
기존 배열 요소 사용법과 전개 연산자 도입 비교
// 기존 var array1 = [1, 2]; var array2 = [3, 4]; var arrayNew = [array1[0], array1[1], array2[0], array2[1]]; // ES6 var arrayNew = [...array1, ...array2]; // 참 간단하죠? // 기존 var array1 = ['one', 'two']; var array2 = ['three', 'four']; var arrayNew = array1.concat(array2); // concat함수사용 var arrayNew = [].concat(array1, array2); // ES6 var arrayNew = [...array1, ...array2]; // 참 간단하죠? // 기존 var text1 = arrayNew[0]; var text2 = arrayNew[1]; var text3 = arrayNew[2]; var text4 = arrayNew[3]; // ES6 var [ ...textAll ] = arrayNew; // 참 간단하죠? console.log( ...textAll ); // one two three four console.log( textAll ); // ["one", "two", "three", "four"] var [ text1, text2, ...others ] = arrayNew; // text1,2 넣고 others는 나머지 console.log( text1, text2, others ); // one two ["three", "four"]
객체 전개 연산자
기존 문법에서는 배열과 객체를 다루는 방법이 달랐지만, ES6의 전개 연산자를 사용하면 비슷한 느낌 아닌 느낌으로 사용이 가능합니다. 쉽게 설명하면 배열이든 객체든 전개 연산자는 내용물을 잘 풀어서 이쁘게 포장을 해줍니다.
기존 객체(Object) 활용법과 전개 연산자 도입 비교
// -------------------- 기존 -------------------- var object1 = { one: 1, two: 2, temp: 12 }; var object2 = { three: 3, four: 4, temp: 34 }; var objectNew = { // 노가다 코딩 one: object1.one, two: object1.two, temp: object1.temp, // temp변수명 동일 three: object2.three, four: object2.four, temp: object2.temp, // 이걸로 덮어씌어짐 }; console.log(objectNew); // {one: 1, two: 2, three: 3, four: 4, temp: 34} var objectNew = Object.assign({}, object1, object2); // assign함수 이용 console.log(objectNew); // {one: 1, two: 2, three: 3, four: 4, temp: 34} var objectNew = Object.assign({}, object2, object1); // 반대로 덮어씌어짐 console.log(objectNew); // {one: 1, two: 2, three: 3, four: 4, temp: 12} var temps = Object.assign({}, objectNew); delete temps.temp; // temp삭제 console.log(temps); // {one: 1, two: 2, three: 3, four: 4} // -------------------- ES6 -------------------- var objectNew = { ...object1, // 참 간단하죠? ...object2, }; console.log(objectNew); // {one: 1, two: 2, three: 3, four: 4, temp: 34} var objectNew = { ...object2, // 반대로 덮어씌어짐 ...object1, }; console.log(objectNew); // {one: 1, two: 2, three: 3, four: 4, temp: 12} var { temp, ...temps } = objectNew; // temp키로 뽑은 나머지를 temps에게 console.log(temp, temps); // temp: 12, {one: 1, two: 2, three: 3, four: 4}
2020.09.16 - [웹 프론트엔드/자바스크립트] - [ES6] 화살표 함수와 커링 디자인 패턴
[ES6] 화살표 함수와 커링 디자인 패턴
화살표 함수 ES6에 새로 추가된 화살표 함수(arrow function)는 함수 표현을 간단하게 할 수 있습니다. 기존 함수 사용과 화살표 함수 표현식을 비교해보고, 그것을 응용한 커링 디자인 패턴을 보겠
jiguin-hankun.tistory.com
'웹 프론트엔드 > 자바스크립트 (ES6)' 카테고리의 다른 글
[ES6] 프로토타입 prototype에서 class 클래스로 (0) | 2020.09.21 |
---|---|
[ES6] 템플릿 문자열 (Template String) (0) | 2020.09.18 |
[ES6] 화살표 함수와 커링 디자인 패턴 (0) | 2020.09.16 |
[ES6] 객체 확장 표현(Destructuring) 및 구조 분해 할당 (0) | 2020.09.05 |
[ES6] 자바스크립트 문법 (var, let, const) (0) | 2020.09.01 |
댓글