이전에 null==undefine과 null!==undefine을 본 것 같지만, 전혀 관심을 두지 않았습니다.
최근에 다른 사람의 프로그램 소스코드를 보다가 여기저기서 if(x!=undefine&&x!=null&&x!="") 같은 판단이 있었는데 문득 글이 너무 장황하다는 생각이 들었습니다. 나는 일반적으로 직접적입니다. if(x){}null, 정의되지 않음, ""는 조건부 판단에서 실제로 거짓이므로 왜 그렇게 장황합니까? (단, x==0도 법적 값인 경우 if(x){}를 사용하여 조건부 판단을 내릴 수 없다는 점에 유의하세요.)
이 중복성을 증명하기 위해 저는 특별히 다음을 수행했습니다. 다음 테스트:
var a
alert(x)
if(x==null){
Alert('failed')
}
여기서 x는 초기화되지 않은 변수, 즉 정의되지 않은 변수입니다.
위 코드를 실행하세요. undefound 및 failed 팝업이 연속적으로 표시되어 x==null이 정규화되었음을 나타냅니다.
경고(null==undefine)를 직접 수행하면 실제로 true가 반환되는 것을 확인할 수 있습니다.
이 모든 것은 x==null||x==undef 또는 x!=null&&x!=undefine과 같은 쓰기가 완전히 중복된다는 것을 보여줍니다!
일반적으로 null 또는 undefound만 판단하면 됩니다.