null
과 undefined
는 모두 자바스크립트의 데이터 타입이다.
undefined
는 변수를 선언하고 값을 할당하지 않은 상태. 즉, 자료형이 없는 상태.
null
은 변수를 선언하고 빈 값을 할당한'빈 값(blank)'을 할당한 상태이다.
따라서 typeof를 통해 자료형을 확인해보면 null
은 object로, undefined
는 undefined가 출력되는 것을 확인할 수 있다.
포괄적인 의미로 '값이 없다'는 점에서 null과 undefined가 비슷한 것 같지만, 엄밀히 말하자면 둘은 같지 않다.
이렇게 생각하자, 어떤 상자에 이름을 붙였냐 아직 붙이지 않았냐로 따진다면
undefined는 이름을 붙이지 않은 상태(value를 할당하지 x) 인거고, null은 은 이름을 붙인 상태인 것이다 (아래 그림 참고!)