[JS] 자바스크립트 최신 es11

Hyodduru ·2021년 11월 15일
0

JavaScript

목록 보기
26/60
post-thumbnail

출처 : 유튜브 드림코딩 자바스크립트

Optional Chaining(?.)

const person1 = {
    name : 'Ellie',
    job : {
        title: 'S/W Engineer',
        manager: {
            name : 'Bob',
        },
    },
};
const person2 = {
    name : 'Bob',
};

💩💩💩💩💩💩💩

    function printManager(person){
        console.log(person.job.manager.name);
    }
    printManager(person1);
    //printManager(person2); => error

💩💩💩

    function printManager(person){
        console.log(
            person.job
            ? person.job.manager
                ?person.job.manager.name
                : undefined
               :undefined 
        )
    }
    printManager(person1);
    printManager(person2); //undefined 출력 

💩

    function printManager(person){
        console.log(person.job && person.job.manager && person.job.manager.name);
    }

    function printManager(person){
        console.log(person.job?.manager?.name);
    }
    printManager(person1);
    printManager(person2)

Nullish Coalescing Operator (??) (null 병합 연산자)

Logical OR operator
- false : false, '', 0, null, undefined
- || : 앞에 있는 값이 false 일 때만 뒤에 값이 실행됌.

    const name = 'Ellie';
    const userName = name || 'Guest';
    console.log(userName);

💩
and, or 연산자에서 '', 0, null, undefined 들도 다 false로 간주하기 때문에 원치 않게 값이 출력되지 않을 수 있다. 이 점 유의할 것!

    const name = null;
    const userName = name || 'Guest';
    console.log(userName); //'Guest' 출력 

    const name1 = '';
    const userName1 = name1 || 'Guest';
    console.log(userName1); //'Guest' 출력 

    const num = 0;
    const userAge = num || 'Guest';
    console.log(userAge); //'Guest' 출력 
    

    const name = '';
    const userName = name ?? 'Guest'; // name에 값이 
                                       있다면 name을 쓰고, 값이 없을 때만 
                                       Guest
    console.log(userName);

    const num = 0;
    const message = num ?? 'undefined'; //num에 값이 있을 때만 
    console.log(message);

}
profile
꾸준히 성장하기🦋 https://hyodduru.tistory.com/ 로 블로그 옮겼습니다

0개의 댓글