날짜: 2024-07-12
JS에서 ??
연산자는 "널 병합 연산자(Nullish Coalescing Operator)"라고 불립니다. 이 연산자는 ES2020에서 도입되었습니다.
??
연산자의 기능:
- 왼쪽 피연산자가
null
또는undefined
일 때만 오른쪽 피연산자를 반환합니다. - 그 외의 경우(falsy 값 포함)에는 왼쪽 피연산자를 반환합니다.
||
연산자와의 비교:
-
기능:
||
: 왼쪽 피연산자가 falsy(false
,0
,''
,null
,undefined
,NaN
)일 때 오른쪽 피연산자를 반환합니다.??
: 왼쪽 피연산자가null
또는undefined
일 때만 오른쪽 피연산자를 반환합니다.
-
사용 예:
console.log(0 ?? 42); // 0 console.log(0 || 42); // 42 console.log('' ?? 42); // '' console.log('' || 42); // 42 console.log(null ?? 42); // 42 console.log(null || 42); // 42
장단점:
??
연산자의 장점:
0
이나 빈 문자열(''
)과 같은 유효한 falsy 값을 그대로 사용하고 싶을 때 유용합니다.- 의도를 더 명확하게 표현할 수 있습니다. "이 값이 없으면(null 또는 undefined) 이 기본값을 사용하라"는 의미를 정확히 전달합니다.
??
연산자의 단점:
- 비교적 최근에 도입된 기능이라 오래된 브라우저에서는 지원되지 않을 수 있습니다.
||
연산자의 장점:
- 폭넓게 지원되어 호환성이 좋습니다.
- falsy 값을 모두 처리하고 싶을 때 유용합니다.
||
연산자의 단점:
0
이나''
와 같은 falsy 값도 기본값으로 대체되어 버립니다. 이는 때때로 의도치 않은 결과를 초래할 수 있습니다.
결론적으로, 정확히 null
이나 undefined
만을 처리하고 싶다면 ??
를, 모든 falsy 값을 처리하고 싶다면 ||
를 사용하는 것이 적절합니다. 상황에 따라 적절한 연산자를 선택하는 것이 중요합니다.