본문 바로가기
Coding/[Web] Frontend

[Javascript] null, undefined

by Gofo 2024. 1. 11.

undefined vs null

undefiend와 null이 비슷한 것 같지만 다르다.

명시적으로 없음을 나타내기 위해서는 undefined보다는 null이 좋다.

 

  • undefined
    • 값이 정의된 적 없음을 나타낸다. 
    • <pre>typeof undefined</pre> : 'undefined'
  • null
    • 값이 없음을 나타낸다.
    • <pre>typeof null</pre> : 'object'

 

대입한 적 없는 변수나 속성과, 명시적으로 '없음'을 나타내는 경우가 구분되어야 코드의 의미가 명확해진다.

그렇기에 null과 undefiend를 구분해서 사용하는 것이 좋다.

 

equality, identity

비교 시에도 차이가 발생한다.

  • equality 비교
    • <pre>null == undefined</pre> : true
  • indentity 비교
    • <pre>null === undefined</pre> : false

 

참고로 <pre>null == 0</pre>나 <pre>undefined == 0</pre>는 false이다.

 

더 많은 비교는 아래 블로그에서 다루고 있다.

https://blog.naver.com/kbh3983/220936190104

 

[Javascript] === identity VS == equality

=== : identity operator비교하기 위해 타입 형변환을 안함 단순히 둘이 틀리면 false를 리턴 EX. "abc" ...

blog.naver.com

 


<pre>??</pre> vs <pre>||</pre>

<pre>??</pre>

??은 "정의된 값"을 반환한다.

 

따라서 undefined나 null은 값이 없는 것으로 판단하여 다른 값을 찾지만,

0이나 empty string은 값이 존재하는 것으로 판단하여 해당 값을 반환한다.

 

참고

  • <pre>'' ?? '123'</pre> : ''
  • <pre>0 ?? 1</pre> : 0

 

<pre>||</pre>

||는 "truthy"를 반환한다.

때문에 undefined, null, 0, empty string을 모두 값이 없는 것으로 판단하여 다른 truthy를 반환한다.

 


참고

https://codedamn.com/news/nodejs/null-vs-undefined 

 

Null vs Undefined in JavaScript and Node.js

In this blog post, we will explore the differences between null and undefined in JavaScript and Node.js, two concepts that are frequently encountered by developers when working with these technologies. Although they may seem similar at first glance, unders

codedamn.com

https://helloworldjavascript.net/pages/160-null-undefined.html

 

null과 undefined | JavaScript로 만나는 세상

처음 시작하는 사람들을 위한 JavaScript 교재

helloworldjavascript.net

 

 

댓글