객체 확장 표현식
- 기존 자바스크립트의 객체 확장 표현식 :
- 기존 자바스크립트에서 객체와 객체의 값을 선언하기 위해 키 이름과 값을 각각 할당했음
┌ ⓐ : 키 이름과 키 값이 동일함var a = 1;var b = 2;var obj = { x: x, y: y }; // ⓐvar key = 'key';var combine = {};combine['one' + key] = 'val'; // ⓑvar obj2 = { // ⓒx: x,A : function() { console.log('A'); },B : function() { return 0; }};
├ ⓑ : 연산 결과로 키값을 대입할 때는 키값을 지정할 코드를 추가로 작성해야 함
└ ⓒ : 객체에 함수를 추가할 때는 변수에 함수를 할당해야 함
- 기존 자바스크립트에서 객체와 객체의 값을 선언하기 위해 키 이름과 값을 각각 할당했음
- ES6의 객체 확장 표현식 :
- 위의 코드를 아래와 같이 개선함
┌ ⓐ : 객체의 변수를 선언할 때 키값을 생략하면 자동으로 키의 이름으로 키값을 지정함var a = 1;var b = 2;var obj = { x, y }; // ⓐvar key = 'key';var combine = {['one' + key]: 'val' // ⓑ};var obj2 = {x,A() { console.log('A'); }, // ⓒB() { return 0; }};
├ ⓑ : 객체 생성 블록 안에 대괄호를 사용하여 표현식을 작성하면 추가하여 계산된 키값을 생성할 수 있음
└ ⓒ : function 키워드를 생략하여 함수를 선언할 수 있음
- 위의 코드를 아래와 같이 개선함
구조 분해 할당
- 기존 자바스크립트의 구조 분해 :
┌ ⓐ : 배열의 인덱스를 활용하여 변수에 할당하였음var list = [0, 1];var a = list[0]; // ⓐvar b = list[1];var c = list[2] || -1; // ⓑvar temp = b;b = a;a = temp;var obj = {k1: 'one',k2: 'two'};var k1 = obj.k1; // ⓒvar k2 = obj.k2;var k3 = obj.k3 || 'default val'; // ⓓvar new_k = obj.k1 // ⓔ
├ ⓑ : || 연산자를 이용하여 배열의 해당 인덱스에 값이 없으면 기본값으로 할당함
├ ⓒ : 객체의 키값을 변수에 할당함
├ ⓓ : || 연산자를 이용하여 객체의 해당 키값이 없으면 기본값으로 할당함
└ ⓔ : 객체의 키값을 다른 변수에 할당함
- ES6의 구조 분해 & 구조 할당 :
┌ ⓐ : 대괄호 블록 사이에 추출하고자 하는 값의 인덱스 위치에 변수를 배치함var list = [0, 1];var [a, // ⓐb,c = -1 // ⓑ] = list;[b, a] = [a, b]; // ⓒvar obj = {k1 : 'A'k2 : 'B'};var {k1: new_k1, // ⓓk2, // ⓔk3 = 'default val' // ⓑ} = obj;
├ ⓑ : 기본값을 할당함
├ ⓒ : 배열의 두 값을 치환함
├ ⓓ : 추출된 키값을 다른 변수명으로 할당함
└ ⓔ : 객체의 키값을 변수에 할당함
라이브러리 의존성 관리
- 기존 자바스크립트의 라이브러리 의존성 관리 :
- script 엘리먼트를 이용하여 관리했음
- 직접 만든 모듈을 공유할 때는 전역 변수를 사용했음
예를 들어 lib 폴더에 있는 math.js에 sum() 함수와 pi를 선언했다면
전역 변수를 선언하고 객체 안에 함수를 정의하여 담을 수 있음
이후에 다른 파일에서 math.js에 정의된 함수를 참조하여 사용할 수 있음 - script 엘리먼트의 선언 순서가 매우 중요함
- ES6의 라이브러리 의존성 관리 :
- import 구문을 사용하여 script 엘리먼트 없이 연결된 파일 및 의존 파일을 먼저 모두 내려 받고 코드를 구동함
'React > ES6' 카테고리의 다른 글
React ES6 (5) - 비동기 함수, 디바운스 & 스로틀 (0) | 2021.08.25 |
---|---|
React ES6 (4) - 배열 함수 (0) | 2021.08.25 |
React ES6 (2) - 클래스, 화살표 함수 (1) | 2021.08.24 |
React ES6 (1) - 템플릿 문자열, 전개 연산자, 가변 변수 & 불변 변수 (0) | 2021.08.24 |