프로그래밍 언어/HTML,CSS,JS

JavaScript "null coalescing" 연산자

Rateye 2021. 10. 15. 10:47
728x90
반응형
질문 : JavaScript에 "null 통합"연산자가 있습니까?

Javascript에 null 병합 연산자가 있습니까?

예를 들어 C #에서는 다음과 같이 할 수 있습니다.

String someString = null;
var whatIWant = someString ?? "Cookies!";

Javascript에 대해 알아낼 수있는 가장 좋은 근사값은 조건부 연산자를 사용하는 것입니다.

var someString = null;
var whatIWant = someString ? someString : 'Cookies!';

일종의 엉뚱한 IMHO입니다. 더 잘할 수 있습니까?

답변

최신 정보

JavaScript는 이제 nullish 병합 연산자 (??)를 지원합니다. 왼쪽 피연산자가 null 또는 undefined 인 경우 오른쪽 피연산자를 반환하고 그렇지 않으면 왼쪽 피연산자를 반환합니다.

사용하기 전에 호환성을 확인하십시오.

C # null 병합 연산자 ( ?? )에 해당하는 JavaScript는 논리 OR ( || )를 사용합니다.

var whatIWant = someString || "Cookies!";

동작이 C #의 동작과 일치하지 않는 경우 (아래에 설명 됨)가 있지만 이것은 JavaScript에서 기본값 / 대체 값을 할당하는 일반적이고 간결한 방법입니다.

첫 번째 피연산자의 유형에 관계없이 Boolean으로 캐스트 한 결과가 false 인 경우 할당은 두 번째 피연산자를 사용합니다. 아래의 모든 경우에주의하십시오.

alert(Boolean(null)); // false
alert(Boolean(undefined)); // false
alert(Boolean(0)); // false
alert(Boolean("")); // false
alert(Boolean("false")); // true -- gotcha! :)

이것은 다음을 의미합니다.

var whatIWant = null || new ShinyObject(); // is a new shiny object
var whatIWant = undefined || "well defined"; // is "well defined"
var whatIWant = 0 || 42; // is 42
var whatIWant = "" || "a million bucks"; // is "a million bucks"
var whatIWant = "false" || "no way"; // is "false"
출처 : https://stackoverflow.com/questions/476436/is-there-a-null-coalescing-operator-in-javascript
728x90
반응형