만자의 개발일지

[JavaScript] null 병합 연산자 본문

JavaScript

[JavaScript] null 병합 연산자

박만자 2022. 4. 15. 14:39

null 병합 연산자(Nullish Coalescing Operator)

null 병합 연산자(??)는 왼쪽 값이 null 혹은 undefined 인경우 오른쪽 값을 반환하는 연산자입니다.

언뜻 보면 OR 연산자의 단축 평가와 매우 유사하지만 두 연산자에는 중요한 차이점이 있습니다.

 

우선 왼쪽값이 null 혹은 undefined의 경우 OR 연산자와 똑같이 동작합니다.

console.log(null || 100)
console.log(null ?? 100)

console.log(undefined || 200)
console.log(undefined ?? 200)
100
100
200
200

 

하지만 nullundefined를 제외한 false로 평가되는 모든 의 경우 OR 연산자는 오른쪽 값을 반환하지만 

null 병합 연산자의 경우 왼쪽값을 반환하게 됩니다.

console.log(0 || 100)
console.log(0 ?? 100)

console.log(false || 200)
console.log(false ?? 200)

console.log("" || 200)
console.log("" ?? 200) // 빈 문자열이라 출력 결과가 없음
100
0
200
false
200

 

따라서 nullundefined만 체크하고 싶은 경우 null 병합 연산자를 사용하면되고 

false로 평가되는 모든값을 체크하고 싶은 경우 OR 연산자를 사용하면 될 것 같습니다.

 

단축 평가에 대해 궁금하신 분은 아래 글을 참고하시면 도움이 됩니다.

https://yoo11052.tistory.com/166

 

[JavaScript] 논리 연산자(&&, ||)를 사용한 단축 평가

OR 연산자가 둘중 하나의 조건만 참일 경우 참을 반환한다는것도 알고, AND 연산자는 두 조건 모두 참일 경우 참을 반환한다는 것도 아는데, 이게 왜 이렇게 동작하는지에 대해 고민한적이 없었습

yoo11052.tistory.com

 

참고

Comments