[JavaScript] undefined vs null (+null 값의 타입)

Yeonsu Summer·2022년 9월 3일
0

JavaScript

목록 보기
2/13
post-thumbnail

undefined와 null의 차이점은 무엇일까?

undefined와 null은 둘 다 '없음'을 나타내지만 그 속내를 비춰보면 완전히 다른 값을 나타냅니다.

💡 이 둘의 공통점이 존재하기는 합니다.

각각의 타입명의 값이 유일합니다.

undefined 타입의 값은 오직 undefined,
null 타입의 값은 오직 null뿐입니다.

💡 undefined

  • 변수 선언은 되어있지만 값이 할당되지 않은 상태입니다.
const a;
console.log(a);  // undefined
console.log(typeof a);  // undefined
  • 수학적으로 NaN에 해당합니다.
  • 타입은 undefined입니다.

💡 null

  • 의도적으로 값을 지정하지 않을 때 사용합니다.
const a = null;
console.log(a);  // null
console.log(typeof a);  // object
  • 수학적으로 0에 해당합니다.
  • 타입은 Object입니다.

📍 여기서 질문!!

Q. null 타입의 값은 오직 null이라면서, 왜 null값의 타입은 object인걸까?

A. 자바스크립트의 흔한 버그 중 하나입니다.

null값은 객체가 아닌 기본 타입입니다.

null 타입을 올바르게 체크하는 다른 방법을 사용하면 됩니다. (eqeqeq(===))

const a = null;
a === null;  // true
profile
🍀 an evenful day, life, journey

0개의 댓글