-
undefined, null typeJavaScript/JS 2022. 5. 2. 15:52
undefined 타입
var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.
다시 말해, 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태(대부분 비어 있지 않고 쓰레기 값이 들어 있다)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다. 따라서 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환된다.
var foo; console.log(foo); // undefined
이처럼 undefined는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값이다.
변수를 참조했을 때 undefined가 반환된다면 참조한 변수가 선언 이후 값이 할당된 적이 없는, 즉 초기화되지 않은 변수라는 것을 간파할 수 있다.
null 타입
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다. 변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미다. 이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않는 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.
var foo = 'Anko'; // 이전 참조를 제거. foo 변수는 더 이상 'Anko'를 참조하지 않는다. // 하지만 유용해 보이지 않으므로, 변수의 스코프를 좁게 만들어 변수 자체를 재빨리 소멸시키는 편이 낫다. foo = null;
함수가 유효한 값을 반환활 수 없는 경우 명시적으로 null을 반환하기도 한다. 예를 들어, HTML 요소를 검색해 반환하는 document.querySelector 메서드는 조건에 부합하는 HTML 요소를 검색할 수 없는 경우 에러 대신 null을 반환한다.
<!DOCTYPE html> <html> <head> ... </head> <body> <script> var element = document.querySelector('.good'); // HTML 문서에 good 클래스를 갖는 요소가 없다면 null을 반환한다. console.log(element); // null </script> </body> </html>
'JavaScript > JS' 카테고리의 다른 글
데이터 타입이 필요한 이유 (0) 2022.05.02 전역 객체 식별자 globalThis (0) 2021.07.15 단축 평가 파라미터의 기본 값 설정 (0) 2021.07.09 null 병합 연산자 (0) 2021.07.09 단축 평가, 옵셔널 체이닝 연산자, null 병합 연산자 (0) 2021.07.09