Programming/Javascript, Typescript

[Javascript] 'null'과 'undefined'의 차이

리버김 2022. 11. 2.

undefined는 변수를 선언하고 값을 할당하지 않은 상태로, 자료형이 없는 상태라고 말할 수 있다. null은 변수를 선언하고 빈 값을 할당한 빈 객체이다.

 

typeof를 사용해 자료형을 확인해보면 null은 object로, undefined는 undefined로 출력되는 것을 확인할 수 있다. 

typeof null // 'object'
typeof undefined // 'undefined'
null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true

 

undefined

원시값(Primitive Type)으로, 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동으로 할당된다.

아래와 같은 경우가 undefined를 반환한다.

  • 값을 할당하지 않은 변수
  • 메서드와 선언에서 변수가 할당받지 않은 경우
  • 함수가 값을 return하지 않았을 때

null

원시값중 하나로, 어떤 값이 '의도적으로 비어있음'을 표현한다. undefined는 값이 지정되지 않은 경우를 의미하지만, null의 경우에는 해당 변수가 어떤 객체도 가리키고 있지 않다는 것을 의미한다.

댓글