개발/Typescript

undefined vs null 차이

inseoking 2025. 1. 22. 12:01
console.log(undefined === null)		// false
console.log(undefined == null)		// true

undefind: 변수만 선언하고, 을 할당하지 않은 상태.

null: 변수를 선언하고, 빈 을 할당한 상태.

 

- 두 차이는 무엇일까 ?

아래 코드블럭을 보자.

let x;
console.log(x);		// undefined
let y = null;
console.log(y);		// object

 

x와 y의 타입이 서로 다른 것을 볼 수 있다. 

 

javascript에서는 return ; 이나, 몇몇 내장 메소드에서는 반환할 값이 없을 때 undefined를 반환한다. 얕은 비교(Shallow compare), 깊은 비교 시 차이가 있다.

console.log(undefined === null)		// false
console.log(undefined == null)		// true

 

위 차이 때문에 개발자 오류가 발생할 가능성이 있으니, 왠만하면 자바스크립트에서는 undefined를 사용하는 것이 안전할 것 같다.

 

Javascript MDN 에서는 null이 주로 사용되는 프로토타입에 대해 설명하고 있는데, 이건 다음 시간에 배워보도록 하자.