나는 라이브러리에서 객체 참조의 유효성을 검사하는 간단한 함수를 가지고있다. (여기서 객체는 생성 된 HTML 요소에 대한 참조 인 DIV이다.) 그것은 다음과 같습니다참조 및 데이터 유형 검사는 동일합니까?
function varIsValidRef(aRef) {
return (!(aRef == null || aRef == undefined) && typeof(aRef) == "object");
}
내가이 같은 효과가 있음을 발견 실험을하는 동안 : 나는 짧은 손() 시험에 대한 약간의 논란이있는 이해
function varIsValidRef(aRef) {
return (aRef) && typeof(aRef) == "object";
}
를? 다양한 데이터 유형 (null, undefined, integer, float, string, array)에 대해 테스트하는 동안 최종 결과에 차이점을 찾을 수 없습니다. 이 함수는 예상대로 작동하는 것 같습니다.
이 두 버전이 완전히 똑같다고 말하는 것이 안전한가요?
+1의이 다른 동안이
"null", null, "undefined", undefined
의와 거짓로 평가된다. 내가 대답 할 수 있다고 생각 했어. 대신 혼자 혼란스러워했다. – Aidanc
\t return (aRef) && typeof (aRef) == "object"&& (typeof (aRef.length) == "undefined")를 사용하면 더 흥미로워집니다. 허위 사실; –