javascript nullish coalescing operator & or operator

Jaehyeong Kim·2023년 3월 4일
0

nullish coalescing operator(??)는 ECMAScript 2020에 업데이트 된 것으로 기존의 or operator(||)에 nullfalse를 구분해서 처리하는 기능이 포함된 operator이다.

or operator 는 첫번째 truthy한 value를 반환하고, 모든값이 falsey하다면 마지막 operand(피연산자)를 반환한다.
예를 들어,

let a = false || true;
console.log(a); //true를 반환

let b = false || null;
console.log(b); //null을 반환

let c = null || false;
console.log(c); //false를 반환

위와 같은 결과를 얻을 수 있다.
만약에 위와 같은 상황에서 nullish coalescing operator를 사용한다면

let a = false ?? true;
console.log(a); //false를 반환

let b = false ?? null;
console.log(b); //false를 반환

let c = null ?? false;
console.log(c); //false를 반환

let d = null ?? true;
console.log(d); //true를 반환

위와 같은 결과를 얻을 수 있다.

이유는 nullish coalescing operator는 첫번째 nullish 하지 않은 value를 반환하기 때문이다. 그리고 마찬가지로 모든값이 nullish하다면 마지막 operand(피연산자)를 반환한다.

다음은 falsey 한 값들을 정리한 표이다.

valuedescription
false키워드 false
0숫자 zero
-0음수 zero
0nBigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름.
""빈 string
nullnull - 아무런 값도 없음
undefinedundefined - 원시값
NaNNaN - 숫자가 아님

이 중에서 nullundefined만 nullish한 값이다.

위 표를 참고해서 or operator(||)와 nullish coalescing operator(??)의 결과를 추측할 수 있다.

0개의 댓글

관련 채용 정보