Javascript에서 Null 대 정의되지 않음

lucaspaganini.com에서 이 기사와 다른 많은 기사를 참조하십시오.

소개


nullundefined 모두 무의 개념을 표현합니다. 그러나 그들은 다른 방식으로 아무 의미가 없습니다.
undefined는 아무도 그것이 무엇이어야 하는지 말하지 않았기 때문에 아무것도 아닙니다. null는 누군가가 아무것도 아니어야 한다고 말했기 때문에 아무것도 아닙니다. undefined는 암시적으로 아무것도 아니며 null는 명시적으로 아무것도 아니라고 말할 수 있습니다.

문제는 명시적으로 무언가를 undefined 로 설정할 수 있다는 것입니다. 그렇다면 둘 다 필요한 이유는 무엇입니까?

저는 Lucas Paganini입니다. 이 웹사이트에서는 2주마다 웹 개발 튜토리얼을 공개합니다. 관심있는 내용이 있으시면 좋아요를 남겨주시고 뉴스레터를 구독해주세요.

둘 다 필요한 이유



그렇다면 둘 다 필요한 이유는 무엇입니까?

좋아, 당신의 영양이 이상적이지 않다고 상상해 봅시다. 그리고 영양사인 Paula는 과일을 더 많이, 하루에 적어도 3개의 과일을 먹으라고 말합니다. 그런 다음 그녀는 어떤 날에는 3개 미만의 과일을 먹어도 괜찮지만 주당 평균은 3개 이상이어야 한다고 말합니다.

그래서 당신은 당신의 과일을 매일 추적하고 있습니다.

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | -------------------- |
| 4   | 2   | 1   | 3   | 5   |     |     | Average = 15 / 5 = 3 |


미래의 날들은 undefined 아직 일어나지 않았기 때문에 우리는 그 안에 무엇을 넣어야 할지 모릅니다.

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | -------------------- |
| 4   | 2   | 3   | 1   | 5   |     |     | Average = 15 / 5 = 3 |

                                 👆    👆
                                undefined


지난 2일을 추적하는 것을 잊었습니다.

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | ------------------- |
| 4   | 2   | 3   | ?   | ?   |     |     | Average = ? / 5 = ? |

                                 👆    👆
                                undefined

0는 주간 평균을 엉망으로 만들 수 있기 때문에 넣을 수 없습니다.

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | --------------------- |
| 4   | 2   | 3   | 0   | 0   |     |     | Average = 9 / 5 = 1.8 |

                                 👆    👆
                                undefined


그리고 그녀는 당신이 그것을 채우는 것을 잊었다고 생각할 것이기 때문에 그것을 비워 둘 수 없습니다( undefined ).

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | ------------------- |
| 4   | 2   | 3   |     |     |     |     | Average = 9 / 3 = 3 |

                     ❌    ❌    👆    👆
                      error     undefined


그래서 당신은 그 날에 뇌졸중을 일으켜 무시해야 한다고 그녀에게 알렸습니다.

                        Today
                          👇

| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| --- | --- | --- | --- | --- | --- | --- | ------------------- |
| 4   | 2   | 3   | -   | -   |     |     | Average = 9 / 3 = 3 |

                     👆    👆    👆    👆
                    null  null  undefined


그것은 nullundefined가 공존하는 것입니다.

하나는 채우는 것을 잊었기 때문에 오류가 될 것입니다. 다른 하나는 무시해야 한다고 명시적으로 표시했기 때문에 유효합니다.

    ❌

| Thu |
| --- |
|     |

    👆

undefined



    ✅

| Thu |
| --- |
| -   |

    👆

null


유형()



또 다른 차이점은 undefined가 기본 값이고 기본 유형이라는 것입니다. typeof undefined를 수행하면 "undefined"가 됩니다. 그러나 null는 기본 값일 뿐이며 typeof null를 수행하면 "object"가 됩니다.

typeof undefined;
//=> "undefined"

typeof null;
//=> "object"


비교



둘 다 "거짓말"이므로 추상적 동등성을 사용하면 동등합니다.

// Abstract equality
null == undefined;
//=> true

// Strict equality
null === undefined;
//=> false


무효



또한 "nullish"이므로 "nullish"연산자를 사용할 수 있습니다. 향후 기사에서 이 주제를 더 깊이 탐구할 수 있습니다.

undefined ?? null ?? '' ?? null;
//=> ""

let x = null;
x ??= 'test 1';
x ??= 'test 2';
//=> "test 1"


결론



내가 말한 모든 것에 대한 참조는 참조에 있습니다.

도움이 되셨다면 [Tweet me](https://twitter.com/LucasPaganini), 도움이 되셨다면 구독해 주세요.

당신은 또한 우리를 고용할 수 있습니다. 우리는 디자이너와 개발자로 구성된 팀이며 프로젝트에서 원격으로 작업할 수 있습니다. 관심이 있으시면 lucaspaganini.com으로 이동하십시오.

좋은 하루 보내시고 곧 뵙겠습니다

참조


  • Falsy values
  • Nullish values
  • Differences between null and undefined
  • JavaScript primitives
  • 좋은 웹페이지 즐겨찾기