반응형
var score;
다음과 같이 변수를 선언할 때, 자바스크립트는 해당 메모리 공간을 undefiend로 초기화한다. 따라서 변수를 선언한 이후 값을 할당하지 않으면, undefined가 반환된다.
따라서, 변수를 참조했을 때 undefined가 반환된다면, 선언 이후 값이 할당된 적 없는 초기화되지 않은 변수라는 것을 알 수 있다.
null은 이와 다르게 변수에 값이 없다는 것을 명시하고 싶을 때 사용해야 한다. 변수에 null을 할당하는 것은 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것이며, 자바스크립트 엔진은 이 공간에 대해 가비지 콜렉션을 수행할 것이다.
예시로, document.querySelector 메서드는 조건에 부합하는 HTML 요소를 검색할 수 없을 경우 null을 반환한다.
물론, undefined를 할당한다고 가비지 콜렉션이 수행되지 않는 것은 아니다.
null을 할당하는 것이 더 성능적으로 이득이라는 말도 있지만, 큰 차이는 없다고 한다. 이는 가비지 컬렉션 기능이 예전보다 좋아졌기 때문이다.
따라서 undefined를 할당해도 큰 문제는 없지만, 변수의 정의에 따라 구분하여 사용하는 것이 좋을 것 같다.
* 참고
- 모던 자바스크립트 deep dive javascript 6장
반응형
'책정리 > Deep Dive Javascript' 카테고리의 다른 글
객체 프로퍼티 접근, 변경 시 내부 동작 방식 (Javascript) (1) | 2023.11.25 |
---|---|
var, let, const의 차이 (자바스크립트 ES6) (2) | 2023.11.24 |
자바스크립트에서의 함수, 동작 방식 (1) | 2023.11.23 |
자바스크립트에서의 변수 선언, 호이스팅, 동작 방식과 그 원리 (1) | 2023.11.22 |
자바스크립트의 역사, 특징, 관련 용어 정리 (0) | 2023.11.22 |