본문 바로가기

REACT

ES6_1강

  문법(1)

1. let, const 키워드

var 한 가지만 사용하던 변수 선언에 추가된 키워드이다.

 

* 호이스팅(hosing) : 사용을 먼저, 선언은 나중에

 

2. 템플릿 리터럴

let a = 10; -> 10을 리터럴

 

`(back tick)을 사용하여 변수의 값을 리터럴처럼 사용한다.

변수의 값을 출력할 때는 '${변수}'를 입력한다.

 

ex)

/ES5
var str1 = ', ';
var str2 = 'World!';
var str3 = 'Hello' + str1 + str2;
//출력 : Hello, World!

//ES6
let str1 = ', ';
let str2 = 'World!';
let str3 = `Hello${str1}${str2}`;

 

3. 구조 분해 할당(Spread)

객체나 배열에서 사용하는 기법으로, 객체나 배열을 해체한 후 개별값을 새로 할당하는 과정(방식)을 말한다.

 

ex)

// 배열 분해
const arr = [1, 2, 3];
console.log(arr[0]); // 개별적인 사용
let a1 = arr[0];
let a2 = arr[1];
let a3 = arr[2];
let [one, two, three] = arr;
console.log(one, two, three); // 1 2 3

//객체 분해
const employee = {
	company: "ICIA",
	name: "Hong",
    age: 23
}
let { company: comp, name, age } = employee;
console.log(comp); // ICIA

 

4. Spread Operator(...)

배열이나 객체를 새로운 배열이나 객체로 복제한다. (새로운 값 추가)

 

let arr1 = [1,2,3,4];
let arr2 = arr1; //새로운 배열이 아니라 같은 배열.

위 코드는 한 배열의 이름이 두 개가 된 상황이다.

 

ex)

let arr1 = [1, 2, 3, 4];
let arr2 = arr1; // 얕은 복사(shallow copy)

arr2[2] = 5;
console.log(arr1);  // 1 2 5 4

let arr3 = [];
for (let i = 0; i < arr1.length; i++) {
	arr3.push(arr1[i]); // 깊은 복사(deep copy)
}
    
arr3[2] = 15;
console.log(arr1); // 1 2 5 4
console.log(arr3); // 1 2 15 4

arr4 = [...arr1];
arr4[3] = 100;
console.log(arr1); // 1 2 5 4
console.log(arr4); // 1 2 5 100

arr5 = [5, ...arr1, 6];
console.log(arr5); // 5 1 2 5 4 6

employee2 = { ...employee };//객체 복제
employee2.company = '중앙';
console.log(employee); // {company: 'ICIA', name: 'Hong', age: 23}
console.log(employee2); // {company: '중앙', name: 'Hong', age: 23}

function sumNumber(...args) { // 가변 파라미터 처리 => 개수와 상관없이 사용 가능
    let sum = 0;
    for(let v of args) {
        sum += v;
    }
    return sum;
}
console.log(sumNumber(1, 2, 3, 4)); // 10

 

5. Default Parameter(기본 매개변수)

함수의 인자를 넘겨줄 때, 기본값 설정이 가능하다. 함수를 실행할 때 매개변수에 값을 넣지 않으면 설정한 기본값을 사용한다.

 

참고) 함수 표현식 : 변수에 함수를 넣는 방식

const func = function(p) { .... };
func(pp); // 사용 방식은 일반적인 함수와 동일.

이는 hoisting을 방지한다.

 

ex)

function add1(a = 0, b = 1) {
    return a + b;
}

let res1 = add1();
console.log(res1); // 1

'REACT' 카테고리의 다른 글

React_0강  (0) 2022.11.28
ES6_3강  (0) 2022.11.24
ES6_2강  (0) 2022.11.24