undefined와 null은 JavaScript에서 모두 값이 없음을 나타내는 것이지만 미묘한 차이가 있다.
// 값이 의도적으로 비어있음을 표현하는 경우
let a = null;
console.log(a); // null
const person = { name: 'hyun' };
person.name = null;
console.log(person.name); // null
// 1. 값을 할당하지 않은 변수
let a;
console.log(a); // undefined
// 2. 함수가 반환 값을 지정하지 않은 경우
function foo() {
}
console.log(foo()); // undefined
// 3. 선언되지 않은 변수에 접근한 경우
const obj = { a: 10 };
console.log(obj.b); // undefined
1. undefined와 null은 동일하지 않다.
console.log(undefined == null); // true
console.log(undefined === null); // false
두 값이 동등성(equality) 비교(==)를 할 경우에는 같은 것으로 취급하지만, 일치성(strict equality) 비교(===)를 할 경우에는 다른 것으로 취급된다.
2. null과 undefined의 type
typeof null // object
typeof undefined // undefined
정보가 풍부해서 많은 도움이 되었습니다.