[JS] undefined / null

현수·2022년 4월 25일
0

면접준비

목록 보기
7/10

Undefined

  • 원시타입(Primitive Type)중 하나로, 변수를 선언한 후 값을 할당하지 않은 상태이다.
    • 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동으로 할당된다.
typeof undefined // 'undefined'
  • undefined는 자료형이 없는 상태로, typeof로 확인했을 때도 undefined가 나오게 된다.

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



Null

  • 원시타입(Primitive Type)중 하나로, 어떤 값이 의도적으로 비어있는 상태이다.
    • undefined의 경우 값이 지정도지 않은 경우이지만, null은 해당 변수가 의도적으로 어떤 객체도 가리키고 있지 않다는 것을 의미한다.
typeof null // 'object'
  • null의 원시타입임에도, typeof로 확인했을 때도 object가 나오게 된다.
    • null의 typeof 값이 object인 것은 초기 자바스크립트의 구현 버그이다.


Undefined vs Null

null === undefined // false
null == undefined // true
null === null // true
null == null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
  • null과 undefined에는 strict equality에서는 false이지만, loose equality에서는 true이다.
  • null은 연산에서 자동 형변환 시 0으로 변환되지만, undefined는 연산에서 자동 형변환 시 NaN으로 변환된다.


profile
언젠간 되겠지!

0개의 댓글