[JS] null 과 undefined 차이

김zunyange·2023년 1월 22일
0

JavaScript

목록 보기
6/17
post-thumbnail

nullundefined는 모두 자바스크립트의 데이터 타입입니다.

undefined는 선언은 됐지만 아직 value가 할당되지 않은 경우를 의미합니다. null은 '빈 값(blank)'을 의미하는데 사용자가 준 value입니다. 그래서 undefined와 다르게 자바스크립트가 자동적으로 null 이란 값을 줄 수는 없습니다.

포괄적인 의미로 '값이 없다'는 점에서 nullundefined가 비슷한 것 같지만, 엄밀히 말하자면 둘은 같지 않습니다.

let name;            // undefined
name = null;     // null

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

엄격일치연산(===)는 value뿐만 아니라 type도 같아야 true가 나옵니다.

그러면 nullundefined의 type은 어떤 타입일까요? 타입을 알아보기 위해서 'typeof' 연산자를 사용해봅시다.

console.log(typeof null);       // object
console.log(typeof undefined);  // undefined

null의 type이 object가 나왔습니다. 왜일까요? null은 위에 설명한대로 '값이 없음(blank)'을 의미하는 '할당된' value이기 때문입니다.


📌 요약

Undefined

let msg; // msg 변수를 선언만 하고, 값을 할당(초기화)하지 않았습니다.
console.log(msg); // undefined
console.log(msg === undefined); //true
  • undefined 데이터 타입은 말 그대로 정의되지 않은 데이터입니다.
  • let, const 키워드를 사용해서 변수를 정의할 때 초기화 하지 않았다면, 즉 변수를 선언만 하고 값을 할당하지 않았다면 변수의 값에는 undefined 가 할당됩니다.

Null

  • null 타입은 데이터 타입 중 하나 입니다. 말 그대로 값이 아예 없는 데이터입니다.
  • 하지만 콘솔에 typeof null 로 확인해보면 object 라고 나옵니다. null 은 말그대로 아무것도 아닌 빈 객체를 가리키고 있어 object 라고 나옵니다.
  • console.log(msg === undefined) 에서 undefined 는 변수명이 아니라 예약된 키워드입니다.
let msg = null;

msg라는 변수를 만들긴 만들었는데, 아직 값이 준비되지 않아서 없는 걸 명확히 하고 싶을 때 null 을 사용합니다.
선언은 했는데 아직 쓰고 있지 않다 는 뜻이 아님 !!


출처 : wecode

profile
배움은 즐거워 ~(*ૂ❛ᴗ❛*ૂ)

0개의 댓글