JavaScript의 null 병합 연산자
네, JavaScript는 이제 null 병합(nullish coalescing) 연산자(??)를 공식적으로 지원합니다. 이 연산자는 값이 null 또는 undefined일 때만 오른쪽 값을 반환합니다.
그 전에 널리 사용되던 방식은 논리 OR(||) 연산자를 활용하는 것입니다. 왼쪽 값이 falsy(거짓으로 평가되는 값)일 경우 오른쪽의 실제 값을 대신 사용하는 방식입니다.
기본 문법
var anyVariableName = null;
var anyVariableName = yourVariableName || yourActualValue;
예제 코드
var fullName = null;
console.log("The full name is=" + fullName);
var actualName = fullName || "David Miller";
console.log("The full name is=" + actualName);
위 프로그램을 실행하려면 다음 명령어를 사용합니다.
node fileName.js
여기서는 파일 이름이 demo81.js라고 가정합니다.
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\JavaScript-code> node demo81.js
The full name is=null
The full name is=David Miller
|| 연산자와 ?? 연산자의 차이점
두 연산자는 비슷해 보이지만 중요한 차이가 있습니다.
- 논리 OR(||): 왼쪽 값이 falsy인 경우(
null,undefined,0,"",false,NaN) 모두 오른쪽 값을 반환합니다. - null 병합(??): 왼쪽 값이 정확히
null또는undefined일 때만 오른쪽 값을 반환합니다.
따라서 0이나 빈 문자열("") 같은 유효한 값을 그대로 보존해야 하는 경우에는 ?? 연산자를 사용하는 것이 더 안전하고 의도에 맞습니다.