이전 글에서 궁금했던 null과 undefined의 차이점에 대하여 알아보겠습니다.
우선 변수를 선언한 상태에서,
null은 빈 값을 할당한 상태이고,
undefined는 값을 할당하지 않은 상태입니다.
비슷한 것 같지만, 명확한 차이점은
null은 "의도적으로" 빈 값을 가진 것이고,
undefined는 "원래부터" 값이 없는 것이지요.
stackoverflow에 누군가가 화장실의 휴지 그림으로 표현했는데, 이 이미지를 상상하면 될 것 같습니다.
일반적인 값이 휴지가 있는 상태라면,
0은 휴지를 다 쓴 것이고,
null은 휴지걸이는 있지만, 휴지심이라고 하나요? 그 종이를 빼 놓은 상태이고,
undefined는 휴지걸이조차 없는 그야말로 아무것도 없는 상태이죠
코드로 만들어지는 차이점을 살펴보면 다음과 같습니다.
var testUndefiend;
alert(testUndefiend); //shows undefined
alert(typeof testUndefiend); //shows undefined
var testNull = null;
alert(testNull); //shows null
alert(typeof testNull); //shows object
사실 많은 경우에 null이나 undefined나 비슷하게 취급되지만,
실질적인 차이점을 보자면,
null === undefined // false
null == undefined // true
바로 이 부분입니다.
null과 undefined는 data type이 다른 것이기에,
== 로 비교했을 때는 true가 나오지만,
=== 로 비교했을 때는 false가 된다는 것.
결론적으로 우리가 기억할 것은,
1. null은 의도적으로 값이 할당된 것이고, undefined는 아예 없는 것
2. null === undefined 는 false라는 것
이 2가지를 기억하면 될 것 같습니다.
'Coding > JavaScript' 카테고리의 다른 글
1 -5 . Introduction to JavaScript - String Concatenation (0) | 2021.11.13 |
---|---|
1-4 . Introduction to JavaScript - Arithmetic Operators (feat. -0) (0) | 2021.10.28 |
1-2 . Introduction to JavaScript - Comments, Data type (0) | 2021.10.19 |
1-1 . Introduction to JavaScript - console.log() (0) | 2021.10.18 |
댓글