자바스크립트 undefined와 null
자바스크립트 핵심 개념· 1 / 9
undefind
JavaScript 엔진은 사용자가 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 지정되지 않았을 때 undefined를 반환한다.
- 값을 대입하지 않은 변수(데이터 영역의 메모리 주소를 지정하지 않은) 식별자에 접근할 때
let a;
console.log(a); // undefined- 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때
let obj = { a: 1 };
console.log(obj.a); // 1
console.log(obj.b); // undefined- 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: 명시적으로 '없음'을 표현하기 위해 대입하는 값