JavaScript 데이터 타입 6편

김예진·2021년 2월 11일
0

Core JavaScript

목록 보기
6/7
post-thumbnail

코어 자바스크립트 책의 1장 데이터 타입 내용을 정리한 글이다.

undefined와 null

자바스크립트에는 없음을 나타내는 값이 두 가지가 있다. 바로 undefinednull이다. 두 값은 의미가 미세하게 다르고 사용하는 목적 또한 다르다.

우선 undefined부터 살펴보자.
undefined사용자가 명시적으로 지정할수도 있지만 값이 존재하지 않을 때 자바스크립트 엔진이 자동으로 부여하는 경우도 있다. 그러면 자바스크립트 엔진이 자동으로 부여하는 경우에 대해 살펴보자.

자바스크립트 엔진은 사용자가 응당 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 그렇게 하지 않았을 때 undefined를 반환한다. 다음 세 경우가 이에 해당한다.

  1. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
  2. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
  3. return 문이 없거나 호출되지 않은 함수의 실행 결과

값으로써 어딘가에 할당된 undefined는 실존하는 데이터인 반면, 자바스크립트 엔진이 반환해주는 undefined는 문자 그대로 값이 없음을 나타내는 것이다.

undefined와 null은 언제 사용?

위에서 언급했듯이 undefined는 사용자가 명시적으로 지정하는 경우와 값이 존재하지 않을 때 자바스크립트 엔진이 자동으로 부여하는 경우로 나뉜다. 그러면 내가 지금 보고 있는 undefined가 내가 어딘가에 할당한 값인지, 자동으로 부여된 값인지 혼란스러울 수 있다. 이 혼란을 피할 방법은 규칙을 정하는 것이다. 자바스크립트 엔진이 반환하는 경우는 우리의 통제 범위를 벗어나므로 모든 undefined가 오직 이 경우만 해당하게끔 해주는 것이다. 즉, 직접 undefined를 할당하지 않기만 하면 된다.

같은 의미를 가진 null이 있는데 굳이 undefined를 써야 할 이유가 없다. 비어있음을 명시적으로 나타내고 싶을 때는 undefined가 아닌 null을 쓰면 된다. null은 애초에 이런 용도로 만든 데이터 타입이다. 이런 규칙을 따르는 한 undefined는 오직 값을 대입하지 않은 변수에 접근하고자 할 때 자바스크립트 엔진이 반환해주는 값으로서만 존재할 수 있다.



이번 편에서는 `undefined`와 `null`에 대해 알아봤다. 다음 편에서는 데이터 타입에 대해 정리하고 마무리하겠다.

0개의 댓글

관련 채용 정보