"가치 null
또는 undefined
" 를 테스트하는 가장 효율적인 방법 은
if ( some_variable == null ){
// some_variable is either null or undefined
}
따라서이 두 줄은 동일합니다.
if ( typeof(some_variable) !== "undefined" && some_variable !== null ) {}
if ( some_variable != null ) {}
참고 1
질문에서 언급했듯이 짧은 변형 some_variable
이 선언되어 있어야합니다 . 그렇지 않으면 ReferenceError가 발생합니다. 그러나 많은 유스 케이스에서 이것이 안전하다고 가정 할 수 있습니다.
선택적 인수를 확인하십시오.
function(foo){
if( foo == null ) {...}
기존 객체의 속성 확인
if(my_obj.foo == null) {...}
반면에 typeof
선언되지 않은 전역 변수 (간단히 반환 undefined
)를 처리 할 수 있습니다 . 그러나 Alsciende가 설명했듯이 이러한 경우는 적절한 이유로 최소로 줄여야합니다.
노트 2
이보다 더 짧은 변종은 동일 하지 않습니다 .
if ( !some_variable ) {
// some_variable is either null, undefined, 0, NaN, false, or an empty string
}
그래서
if ( some_variable ) {
// we don't get here if some_variable is null, undefined, 0, NaN, false, or ""
}
노트 3
일반적으로 ===
대신에 사용 하는 것이 좋습니다 ==
. 제안 된 솔루션은이 규칙의 예외입니다. JSHint 문법 검사기 도 제공 eqnull
이 이유에 대한 옵션을 선택합니다.
로부터 의 jQuery 스타일 가이드 :
엄격한 평등 검사 (===)는 ==에 유리하게 사용해야합니다. null을 통해 undefined 및 null을 검사 할 때는 예외입니다.
// Check for both undefined and null values, for some important reason.
undefOrNull == null;
if(some_variable) { ... }
some_variable
isfalse
or0
or ... 인 경우 실행되지 않습니다 .