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
반응형