본문 바로가기
Javascript

javascript undefined 이해하기

by @hohoya33 2016년 11월 18일

자바스크립트는 3가지의 undefined 존재합니다.

 

타입으로서의 undefined

우선 undefined는 자바스크립트 기본 타입 입니다.

ES5 까지는 다음과 같은 6가지 Built-in type이 있었습니다. undefined는 그중 하나입니다.

 

number, boolean, string, object, null, undefined

 

값으로서의 undefined

undefined는 undefined 타입의 유일한 값입니다.

값이 할당되지 않은 변수 혹은 값이 할당되지 않은 프로퍼티는 undefined가 됩니다.

var a; // undefined
var b = {};
b.c; // undefined;

또한, 리턴문이 없는 함수나 리턴하는 값이 없는 리턴문으로 끝나는 함수의 실행 결과도 undefined가 됩니다.

function returnUndefined() {
  return;
}
function noReturn() {}

returnUndefined(); // undefined
noReturn(); // undefined

 

전역 프로퍼티 undefined

global context에는 undefined라는 이름의 프로퍼티가 설정되어 있습니다. 이 undefined는 undefined인 값을 가집니다.

ES5 이후로 이 프로퍼티는 non-configurable이고, non-writable로 설정되어 있습니다. 따라서 변경할 수 없습니다.

global.undefined // undefined;
global.undefined = 1;
global.undefined // undefined;

 

개의 댓글