← Notes

자바스크립트 undefined와 null

자바스크립트 핵심 개념· 1 / 9
  1. 1 — 자바스크립트 undefined와 null
  2. 2 — 자바스크립트 실행 컨텍스트
  3. 3 — 자바스크립트 호이스팅
  4. 4 — 자바스크립트 함수 선언문과 함수 표현식
  5. 5 — 자바스크립트 스코프 체인
  6. 6 — 자바스크립트 this
  7. 7 — 자바스크립트 콜백 함수
  8. 8 — 자바스크립트 클로저와 가비지 컬렉션
  9. 9 — 자바스크립트 프로토타입

undefind

JavaScript 엔진은 사용자가 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 지정되지 않았을 때 undefined를 반환한다.

  1. 값을 대입하지 않은 변수(데이터 영역의 메모리 주소를 지정하지 않은) 식별자에 접근할 때
let a;
console.log(a); // undefined
  1. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
let obj = { a: 1 };
console.log(obj.a); // 1
console.log(obj.b); // undefined
  1. return 문이 없거나 호출되지 않는 함수의 실행 결과
let func = function() {};
let c = func();
console.log(c); // undefined

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

let arr1 = [];
arr1.length = 3;
console.log(arr1); // [ <3 empty items> ]

let arr2 = [undefined, undefined, undefined];
console.log(arr2); // [undefined, undefined, undefined]

위와 같은 혼란을 방지하기 위해 직접 undefind를 변수로 할당하지 않는 것이 권장된다.

null

명시적으로 ‘없음’을 나타내고 싶을 때는 undefined 대신 null을 사용하는 것이 좋다.

undefined: 어떤 변수에 값이 존재하지 않을 경우
null: 명시적으로 '없음'을 표현하기 위해 대입하는 값
목차