JS - undefined, null

이호현·2020년 11월 14일
0

JS

목록 보기
7/14

1. undefined

1) undefined 등장 조건

자바스크립트에서는 몇 가지 경우 undefined가 자동으로 반화된다.
1) 변수를 선언하고, 값 할당이 없을 때
2) 객체, 배열에 할당되지 않은 keyindex에 접근하려 할 때
3) return문이 없거나 호출되지 않는 함수를 실행할 때

let a;
console.log(a);					// undefined

const obj = {prop: 'hello'};
console.log(obj.prop);				// hello
console.log(obj.prop2);			 	// undefined

const arr = [1, 2, 3];
console.log(arr[1]);				//  2
console.log(arr[3]);				// undefined

function f() {};
const func = f();
console.log(func);				// undefined

2) empty

배열의 크기는 할당 됐지만 값이 없는 indexempty로 표시

const arr = [];
arr.length = 3;
console.log(arr);				// [empty × 3] (Chrome)
						// [ <3 empty items> ] (VSCode)

const arr2 = new Array(3);
console.log(arr2);				// [empty × 3] (Chrome)
						// [ <3 empty items> ] (VSCode)

const arr3 = [];
arr3[1] = 1;
console.log(arr3);				// [empty, 1]
						// [ <1 empty item>, 1 ]

3) undefined 할당

사용자가 명시적으로 undefined를 부여할 수도 있음

const a = undefined;
console.log(a);					// undefined

4) 명시적으로 부여된 undefined와 그렇지 않을 때 undefined의 차이

명시적으로 undefined를 부여했을 때는 undefined 자체가 값으로 할당 되지만
그렇지 않고 자바스크립트가 자동으로 undefined를 반환해 줄 때는 값 자체가 없음을 의미하므로
두 경우에 차이가 있다.

2. null

바로 위와 같이 값이 없음을 나타내고 싶은 경우 undefined보다는 null을 사용하는게 일반적이다.
그런데 자바스크립트(es6 기준) 자체 버그로 null의 타입은 object로 나타난다.

console.log(typeof null);			// object
profile
평생 개발자로 살고싶습니다

0개의 댓글