[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