[JS] `??` 와 `||` 연산자

2023. 7. 24. 11:13JS

JavaScript에서 ??와 ||는 둘 다 "또는"의 개념을 표현하는 연산자이지만, 그 작동 방식은 약간 다르다.

`??` 연산자는 "Nullish coalescing operator"라고 불립니다. 이 연산자는 첫 번째 피연산자가 null 또는 undefined일 경우에만 두 번째 피연산자를 반환합니다.

let value = null ?? "default string"; 
console.log(value);  // "default string"

`||` 연산자는 "Logical OR operator"라고 불립니다. 이 연산자는 첫 번째 피연산자가 falsy값일 경우에만 두 번째 피연산자를 반환합니다. JavaScript에서 falsy값에는 false, 0, ''(빈 문자열), null, undefined, NaN 등이 포함됩니다.

let value = "" || "default string"; 
console.log(value);  // "default string"

이 두 연산자의 주요 차이점은 ||가 모든 falsy값을 체크하고, ??는 오직 null과 undefined만을 체크한다는 점입니다. 따라서 false, 0, ''(빈 문자열), NaN 등의 값에 대해 ??와 ||는 다르게 동작합니다.

'JS' 카테고리의 다른 글

[JS] 다양한 연산자  (0) 2023.08.04
[JS] 스프레드 연산자  (0) 2023.08.03
[JS] 웹 모바일에서 App 실행  (0) 2021.11.01
[JS] IE8 및 Safari 에서 new Date() 시 NaN 오류 이슈  (0) 2021.11.01
[JS] File API  (0) 2021.07.27