객체 값이 존재하지 않는 경우를 의미하는 리터럴(literal) 표현이며 원시 값 유형중의 하나이다.
null
은 객체가 비워져 있음을 의미하는 원시 값이며 리터럴(literal) 표현으로 사용이 된다.
원시 유형이라고 한다면 객체가 아닌 것을 의미하지만 실제로 타입을 체크하면 "object"
로 확인이 된다. 이것을 두고 EMCAScript의 버그라는 이슈가 있기도 하다.
typeof null // 'object'
그리고 null
은 전역 객체의 프로퍼티가 아닌 특수한 원시 값이다. 하지만 전역 범위에서 사용이 되므로 전역 객체의 프로퍼티가 아니라고 볼 수도 없을 것 같다. 중요한 것은 null
은 객체가 비워져 있음을 의미하는 원시 값이며 리터럴 표현으로 사용된다는 것이다.
var obj = {};
// 객체를 비운다. 정확히는 객체의 참조를 끊는다.
obj = null;
null
은 Boolean
으로 형 변환시 false
, Number
로 형 변환시 0
, String
으로 형 변환시 "null"
로 처리된다.