어떤 언어든 프로그래밍을 배운다면 항상 이 두가지는 언급하는 듯하다. 0, null, false, undefined 등... 없는거나 무의식에선 거짓이나 같은게 아닌가 하고 넘어가게 만드는 값들이다. 이중 null과 undefined가 최정점에 있다. 두 값의 공통점과 차이점을 짧게 정리한다.
공통점
1. 자바스크립트를 이루는 원시 값 중 하나다.
2. 불리언 연산에서 거짓으로 취급한다.
console.log(Boolean(undefined)) // false
console.log(Boolean(null)) // false
console.log(null==undefined) // true
차이점
1. null은 '없는' 값이고, undefined는 '존재하지 않는' 값이다.
console.log(null===undefined) // false
let message; // undefined
message = null; // null
2. null은 리터럴로 식별되지 않은 것을 표현할 뿐이고, undefined는 글로벌 식별자다.
let x;
if (x === undefined) {
// 이 문이 실행됨
}
else {
// 이 문이 실행되지 않음
}
// 또는
if (typeof x === 'undefined') {
// 이 문이 실행됨
}
다만, 이때 동등연산자가 아닌 일치 연산자를 써야한다. 동등 연산자를 사용할 경우 x가 null이라면 참으로 나오기 때문이다.
마무리
코딩하다보면 은근히 둘이 헷갈릴 때가 많다. 어설프게 알고 있다가는 뒷통수 맞기 좋은 친구들 같아 명확하게 인지하기 위해 정리했다. 내가 이해하는 선에선 없는 값과 존재하지 않은 값이 필자에게 가장 정확하고, 명확하고, 헷갈리지 않을 표현이라 기입해두었다.
※ 잘못된 내용이 있을 경우 댓글로 알려주세요. 배우고 익히고 수정하겠습니다:)
'FE > Javascript' 카테고리의 다른 글
== & === (1) | 2022.09.23 |
---|---|
Primitive type & Reference type (0) | 2022.09.20 |
let, const, var (1) | 2022.09.14 |
Destructuring Assignment (0) | 2022.09.13 |
hoisting (0) | 2022.09.11 |