null 및 정의되지 않음

JavaScript에는 값의 부재를 나타내는 여러 가지 방법이 있습니다. 이 페이지 은 가장 일반적인 두 가지 방법인 nullundefined 데이터 유형을 설명합니다.

null

null 키워드는 의도적으로 정의된 값 부재를 나타냅니다. null 는 프리미티브이지만 typeof 연산자는 null가 객체임을 반환합니다. 이 오류는 이전 버전과 호환되지 않으며 의도적으로 웹 전체에서 예상되는 동작이 중단되지 않도록 합니다.

typeof null
> object

변수null로 정의할 수 있습니다. 어느 시점에서든 할당된 값을 반영하거나 명시적으로 없는 값을 반환할 수 있습니다. 또한 null 값을 기존 참조에 추가하여 이전 값을 지웁니다.

undefined

undefined변수에 할당된 원시 값입니다. 호출하려는 작업의 결과 값에 대하여 의미 있는 값을 반환하지 않습니다. 예를 들어 함수를 실행할 수 있습니다.

function myFunction() {}
> undefined

함수는 return일 때 명시적으로 undefined를 반환합니다. 는 값을 반환하지 않습니다.

(function() {
    return;
}());
> undefined

nullundefined 비교

undefinednull는 일부 기능적으로 중복되지만 사용할 수 있습니다 가장 엄격히 말해 null는 값을 나타냅니다. 'blank'로 정의될 경우 undefined은 할당된 값이 없음을 나타냅니다.

nullundefined약간 같지만 엄격하게 같지는 않습니다. 느슨한 등호 연산자는 다양한 유형의 피연산자를 불리언으로 강제 변환함 nullundefined가 모두 false이 됩니다. 엄격한 등호 연산자 는 서로 다른 데이터 유형의 피연산자를 같지 않다고 간주합니다.

null == undefined
> true

null === undefined
> false

예약된 키워드 null와 달리 undefined전역 객체. 이것은 디자인이었음 개발 초기에 결정이 내려졌으며 기존 브라우저에서는 undefined을(를) 완전히 덮어씁니다. 최신 브라우저에서도 undefined를 비전역 범위의 식별자로 사용하여 다음 내에서 값을 재정의함 해당 선언의 범위에 속해야 합니다. undefined를 식별자로 사용하면 안 됩니다. 그것은 예상치 못한 동작을 야기할 수 있으며 향후 운영자에게 혼란을 줄 수 있습니다. 제공합니다

이해도 확인

typeof null는 무엇을 반환하나요?

object
undefined
primitive
string