javascript
[javascript] 옵셔널체이닝(optional chaining), null병합 연산자(nullish coalescing)
우주유령
2022. 3. 24. 09:44
728x90
반응형
옵셔널 체이닝(Optioinal Chaining)
옵셔널 체이닝은 ?.을 사용한다.
const name = person?.name
좌항(person)이 undefined나 null이면 좌항(person)을 반환하고, 그렇지 않으면 우항(person.name)을 반환한다.
옵셔널 체이닝이 도입되기 전에는 && 연산자를 사용했다.
&&연산자
const name = person && person.name
&&연산자는 좌항(person)이 falsey값이면(0, -0, '', null, undefined, false, NaN) 좌항(person)을 반환하고, 그렇지 않으면 우항(person.name)을 반환한다.
&&연산자는 falsy값이 조건이지만, 옵셔널 체이닝은 undefined나 null인 경우가 조건 이라는 점에서 다르다
null 병합 연산자(nullish coalescing)
null병합 연산자는 ??을 사용한다.
const foo = null ?? 'default string';
console.log(foo); // "default string"
좌항(null)의 값이 null이나 undefined면 우항을('default string') 반환하고, 아니면 좌항을(null) 반환한다.
nullish coalescing이 도입되기 전에는 ||연산자를 사용했다.
|| 연산자
const foo = "" || "default string";
conosle.log(foo); // "default string"
||연산자는 좌항("")이 falsy값이면 우항("default string")을 반환하고, 아니면 좌항을 반환한다.
""는 falsy값이므로 "default string"이 반환된 것을 볼 수 있다.
||연산자는 flasy값이 조건이지만, null병합 연산자는 null이나 undefined가 조건이라는 점에서 다르다.
728x90
반응형