코딩/자바스크립트

JS / ES6, ES11

민여 2022. 6. 6. 13:33

출처: https://www.youtube.com/watch?v=36HrZHzPeuY


ES6

 

1. Shorthand property names

key와 value가 동일한 경우 줄여쓰기 가능 

 

<예시>

{
    const es6 = {
        name: 'js',
        age: 'very long',
    };

    const name = 'js';
    const age = 'very long'

    const es7 = {
        name, 
        age,
    }
}

 

2. Destructuring assignment

오브젝트의 key와 value에 접근할때 예를들면 

student.name 이런식으로 쓰는데 이걸 

const { name, level } = student; 이렇게 작성가능 

 

3. Spread syntax 

배열 복사할때 [...배열명]

[...배열명1, ...배열명2] 이렇게 가볍게 병합가능 

//object복사도 되는데 이때 이름이 똑같으면 뒤에 작성된 값이 위로 덮어씌여진다는 점 주의 

 

4. Default parameters

함수 파라미터자리에 원래 값이 들어가는데 호출시 내가 빈값을 주면 undefined 가 뜬다 

이럴때 보통 

if(파라미터명 == null){

  파라미터명 = '디폴트 값';

} 이런식으로 하는데 

그냥 함수명(파라미터명 = '디폴트 값') 해주면 됨 

 

5. Ternary operator 삼항 조건 연산자

// ( ? ' ' : ' ' ) <= 이건데 하도 많이 해서 정리하기 귀찮

 

6. Template Literals 

// 이것도 문자 안에 변수넣을때 백틱에 ${변수명}하는거 

 


ES11

 

1. Optional chaining

console.log(person.job && person.job.manager && person.job.manager.name); 

이게 

console.log(person.job?.manager?.name);

이거랑 같음 

 

2. Nullish coalescing operator

or로 사용하는 || 를 ?? 로 사용하는거 

or은 뒤에 코드가 쓰일려면 앞이 false여야 하는데 

빈배열'', 숫자0, null, undefined 전부 false인데 

예를들면 

const num = 0;

const meg = num ?? 'undefined';

이때 ||을 쓰면 undefined가 찍힘 왜냐면 0은 false니까 

근데 ??을 쓰면 숫자 0이 찍힘 왜냐면 숫자0도 0이라는 숫자값이니까