JavaScript Null 및 정의되지 않음


nullundefined 의 차이점

nullundefined 공유 추상 항등 == 그러나 완전 항등 === ,

null == undefined   // true
null === undefined  // false

그들은 약간 다른 것을 나타냅니다 :

  • undefined 는 식별자 / 객체 속성이 만들어지기 전이나 식별자 / 함수 매개 변수 생성과 첫 번째 집합 (있는 경우) 사이의 기간과 같은 없음을 나타냅니다.
  • null 는, 이미 작성된 식별자 또는 프로퍼티 의 값의도적으로 존재 하지 않는 것을 나타냅니다.

그것들은 다른 종류의 구문입니다 :

  • undefined전역 객체속성이며 대개 전역 범위에서 변경 undefined . 이것은 전역 네임 스페이스 이외의 식별자를 정의 할 수있는 모든 곳에서 해당 범위에서 undefined 을 숨길 수 있음을 의미 합니다 (사물은 아직 undefined 않았지만)
  • null단어 리터럴 이므로 의미를 변경할 수없고 그렇게하려고하면 오류가 발생 합니다.

nullundefined 의 유사점

nullundefined 는 모두 위증입니다.

if (null) console.log("won't be logged");
if (undefined) console.log("won't be logged");

null 또는 undefined false ( 이 질문 참조).

false == undefined   // false
false == null        // false
false === undefined  // false
false === null       // false

undefined 사용

  • 현재 범위를 신뢰할 수없는 경우 undefined로 평가되는 무언가를 사용합니다 (예 : void 0; .
  • undefined 가 다른 값에 의해 음영 처리되면 Array 또는 Number 를 음영 처리하는 것만 큼 나쁩니다.
  • 무언가를 undefined 것으로 설정 하지 마십시오. Object foo 에서 속성 표시 줄 을 제거 delete foo.bar; 대신.
  • 존재 테스트 식별자 foo 대한 undefined 사용 참조 오류를 던질 수있다 typeof foo 에 대해 "undefined" 대신.