개발/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이 주로 사용되는 프로토타입에 대해 설명하고 있는데, 이건 다음 시간에 배워보도록 하자.