JS
[JS] `??` 와 `||` 연산자
오병문
2023. 7. 24. 11:13
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 등의 값에 대해 ??와 ||는 다르게 동작합니다.