다음과 같은 사전 구성이 있습니다.
const preloadedConfig = {
"configA": null, // either true, false or null is allowed
};
페이지로드시 다음과 같은 초기화가 있습니다.
let finalConfig = preloadedConfig.configA || true;
시나리오 :
사전로드 된 구성의 속성 은 사용자의 기본 설정에 따라 true , false 또는 null 로 변경할 수 있습니다.
페이지로드시 사용자 선택을 결정하기 위해 단락 평가를 사용하고 싶습니다. 사용자가 선택 (null)을 제공하지 않으면 기본적으로 true로 선택됩니다.
내 문제 :
여기 에서 추출한 다음을 기반으로합니다 .
거짓 값은 부울 컨텍스트에서 사용될 때 거짓으로 강제되는 값이며 0, null, 정의되지 않음, 빈 문자열, NaN 및 물론 거짓입니다.
다음이 평가됩니다.
true >> evaluted true // ok
null >> evaluted true // ok
false >> evaluted true // the problem area
사용자가 구성 옵션 인 false 를 제공하는 경우 최종 평가 된 값은 "거짓 값"이기 때문에 항상 true가됩니다.
내가 원하는 결과 는 제공된 값이 거짓 인 경우 부울 값 거짓입니다.
단락 평가를 사용하고 null, true 또는 false 의 3 가지 유형의 입력 값을 허용하면서이 작업을 수행하려면 어떻게해야 합니까?
대신 nullish 병합 연산자 를 사용할 수 있습니다 .
let finalConfig = preloadedConfig.configA ?? true;
또는 hasOwnProperty
수표를 사용할 수 있습니다 .
let finalConfig = preloadedConfig.hasOwnProperty('configA') ? preloadedConfig.configA : true;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다