[JS] undefined와 null
2021. 7. 10. 21:36ㆍ언어/Javascript
반응형
undefined와 null은 '값이 없음'을 나타내지만 사용하는 목적도 의미도 다르다
💻 undefined
자바스크립트 엔진은 사용자가 응당 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 그렇게 하지않았을 때 undefined를 반환한다.
- 변수를 선언한 이후 값을 할당하지 않은 변수를 참조할 때
var foo;
console.log(foo); // undefined
- 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
var obj = { a: 1 };
console.log(obj.a); // 1
console.log(obj.b); // undefined
- return문이 없거나 호출되지 않는 함수의 실행 결과
var func = function() { }
var c = func();
console.log(c); // undefined
👩💻 null
변수에 값이 없다는 것을 의도적으로 명시(의도적 부재)할 때 사용한다
- 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거
var foo = 'LEE';
foo = null;
- 함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다
<script>
var element = document.querySelector('.myClass'); // HTML에 myClass 클래스를 갖는 요소가 없다 가정!!
console.log(element); // null
</script>
정리
undefined는 자바스크립트 엔진이 변수를 초기화 할때 사용하는 값으로 개발자가 의도적으로 변수에 할당한다면 혼란을 줄 수 있으므로 undefined를 사용하는 것은 권장되지 않는다.
변수에 값이 없다는 것을 명시하고 싶다면 null을 할당해주자!
참고서적
모던 자바스크립트 Deep Dive
코어 자바스크립트
반응형
'언어 > Javascript' 카테고리의 다른 글
TIL01 | JavaScrpit 변수 (0) | 2021.09.26 |
---|---|
[JS] Dynamic typing (dynamic type vs static type) (0) | 2021.07.10 |
[JS] async function (0) | 2021.07.08 |
[JS] Promise 개념 및 활용 (0) | 2021.07.06 |
[JS] Array api 총 정리 (0) | 2021.07.05 |