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 |