null과 undefined는 둘 다 변수에 값이 없는 것을 나타내지만 이 둘의 의미는 상당히 다르다.
null은 NULL의 심볼이며, 의도를 갖고 변수에 null을 할당하여 값이 없다는 것을 나타낸다. null이 할당된 변수의 타입을 확인해보면 object인 것을 알 수 있음.
let a = null; console.log(a); // null console.log(typeof a); // object
변수를 선언하고 값을 할당하기 전의 형태라고 볼 수 있음
let b;
console.log(b); // undefined
undefined가 나오는 경우의 예시
존재하지 않는 객체의 프로퍼티를 읽으려고 할 때
let obj = {};
console.log(obj.a); // undefined
존재하지 않는 배열에 엘리먼트를 읽으려고 할 때
let arr = [1, 2, 3];
console.log(arr[10]); // undefined
- undefined : 접근 가능한 스코프에 변수가 선언되었으나 현재 아무런 값도 할당되지 않은 상태, 타입을 보면 "undefined"이다.
- null : 변수를 선언하고 "null"이란 빈 값을 할당한 경우, 타입을 확인해 보면 "object"이다.