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
<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
https://helloworldjavascript.net/pages/160-null-undefined.html
'Coding > [Web] Frontend' 카테고리의 다른 글
[React] 더 나은 상태(state) 관리하기 (0) | 2024.11.08 |
---|---|
[React] Controlled, Uncontrolled Component (0) | 2024.10.07 |
[React] useImperativeHandle (forwardRef의 ref 커스터마이징) (1) | 2024.01.04 |
[React] Store 유지한 채 페이지 새로고침하기 (Remounting) (0) | 2023.12.24 |
[React] useReducer (0) | 2023.12.24 |
댓글