본문 바로가기
Front-end/js

Optional chaining (?.) 와 Nullish coalescing (??)

by somlang_bba 2021. 11. 23.
728x90

 

나름 최신 문법에 속하는 Optional chaingng은 Nullish coalescing operator와 헷갈리는 경우가 있다.

가장 큰 차이점을 말하자면 ?.는 null이나 undefined에 따라 이후의 코드를 평가(실행)할지를 결정하는 가드의 역할이고

??는 null이나 undefined일 경우 값을 대체하는 역할이라고 생각하면 된다.

// 예시 코드
let obj1 = {
    a : 1,
    b : function(){
        console.log("hello")
    },
};

let obj2 = {}


//.? 예제
obj1.b?.()  // hello
obj2.b?.()  // 아무것도 실행 안됨.


// ?? 예제
obj1.a = obj1.a??3 // obj1.a는 존재하므로 obj1.a의 값인 1이 할당 됨.
obj2.a = obj2.a??3 // obj2.a가 없으므로 ?? 의 뒤에 있는 3이 obj2.a에 할당 됨.
728x90

'Front-end > js' 카테고리의 다른 글

ArrayFunction 2 (find, filter)  (0) 2021.12.14
Array Function 1 (Map)  (0) 2021.12.13
유용한 Array 함수들  (0) 2021.12.08
3자리 마다 콤마찍기  (0) 2021.12.03
js type  (0) 2021.11.22