[javascript] undefined / null
undefined / null
undefined
- undefined는 원시 자료형 undefined로 분류된다.
- undefined는 ‘아무 값도 할당받지 않은 상태’를 의미한다.
- var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.
- 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태(*대부분 비어 있지 않고 쓰레기 값이 들어 있다.)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다.
- 따라서 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환된다.
- 변수를 참조했을 때 undefined가 반환된다면 선언 이후 값이 할당되지 않은 즉, 초기화되지 않은 변수라는 것을 알 수 있다.
null
- null은 원시 자료형 null로 분류된다.
- 자바스크립트는 대소문자를 구분하므로 null은 Null, NULL 등과는 다르다.
- null은 ‘비어있는, 존재하지 않는 값'(값의 부재)을 의미한다.
- 프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용한다.
- 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미이다.
- 이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않은 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.