나는 typeof foo === "undefined"
모든 곳 에서 사용하는 것을 고수했다 . 결코 잘못 될 수 없습니다.
jQuery가 두 가지 다른 메소드를 권장하는 이유 undefined
는 jQuery 코드가 존재하는 함수 내에서 자신의 변수 를 정의하기 때문에 해당 함수 내 undefined
에서 외부에서 변경하는 것이 안전하다는 것입니다. 또한 어딘가에 누군가가 두 가지 다른 접근법을 벤치마킹하고 foo === undefined
그것이 더 빠르다 는 것을 알았 으므로 그것이 갈 길이라고 결정했습니다. [업데이트 : 의견에서 언급 한 바와 같이, 비교 undefined
도 약간 짧아 고려할 수 있습니다.] 그러나 실제 상황에서의 이득은 전혀 중요하지 않을 것입니다. 비교할 호스트 개체의 속성을 평가하면 오류가 발생할 수 있지만typeof
확인하지 않습니다.
예를 들어, 다음은 IE에서 XML 구문 분석을 위해 사용됩니다.
var x = new ActiveXObject("Microsoft.XMLDOM");
loadXML
메소드가 안전하게 있는지 확인하려면 다음을 수행하십시오 .
typeof x.loadXML === "undefined"; // Returns false
반면에 :
x.loadXML === undefined; // Throws an error
최신 정보
typeof
내가 언급하지 않은 확인 의 또 다른 장점은 선언되지 않은 변수와도 작동하며 확인되지 않은 변수 foo === undefined
와 실제로 작동한다는 것 ReferenceError
입니다. 상기시켜 주신 @LinusKleen에게 감사드립니다. 예를 들면 다음과 같습니다.
typeof someUndeclaredVariable; // "undefined"
someUndeclaredVariable === undefined; // throws a ReferenceError
결론 : 항상 typeof
확인을 사용 하십시오.