null: 값이 없음을 의미합니다.
정의되지 않음: 선언되지 않은 변수를 나타냅니다.
또는 선언되었지만 값이 할당되지 않은 변수,
또는 존재하지 않는 개체 속성입니다.
== 연산자는 두 가지를 동일하게 취급합니다. 둘을 구별하려면 === 또는 typeof 연산자를 사용하십시오.
————————————-모호함의 구분선——————————————-
JavaScript에서 null과 undefine은 한때 혼란스러웠습니다. 다음 분석은 이를 더 명확하게 이해하는 데 도움이 됩니다(또는 더 혼란스럽게 만듭니다).
- null은 키워드입니다. 정의되지 않음은 전역 개체의 속성입니다.
- null은 개체(속성과 메서드가 없는 빈 개체)입니다. 정의되지 않은 유형의 값입니다. 다음 코드를 시도해 보세요:
document.writeln(typeof null); //return object
document.writeln(typeof unundefined); //return undefine- 객체 모델에서 모든 객체는 Object 또는 해당 하위 클래스의 인스턴스입니다. 단, null 객체는 예외입니다.
document.writeln(null instanceof Object); //return false- null "동일한 값(==)"은 정의되지 않았지만 "일치하는 값(===)"은 정의되지 않음:
document.writeln(null == undefine) //return true
document.writeln(null === undefine); //return false- null과 undefine은 모두 작업 중에 false로 유형 변환될 수 있지만 false와 같지 않습니다.
document.writeln(!null, !undefine); true, true를 반환
document.writeln(null==false); //false를 반환합니다.
document.writeln(undefine==false); //false를 반환합니다.