Когда вы обычно видите, что один из них возвращается или заходит в консоль, ваша первая мысль обычно состоит в том, что вы сделали что-то неправильно или имеете какую-то ошибку. Но даже если это не те обязательныеслова, которые вы хотите видеть постоянно, это всего лишь некоторые другие типы данных.

Самый распространенный из них (неопределенный) — это тот, у которого больше всего вариаций в том, как он возникает.

Например, при объявлении переменной без каких-либо настроек ее значение по умолчанию будет не определено.

В большинстве случаев, когда вы пытаетесь получить доступ к чему-то, что не существует, его значение будет неопределенным.

В этом примере при создании объектного литерала вам нужно указать пары значений ключа, но если вы попытаетесь получить доступ к ключу, который не находится в объекте, его значение по умолчанию также будет не определено.

Теперь давайте перейдем к NaN (что означает «не число»). Этот тип данных действительно появляется только тогда, когда вы пытаетесь выполнить арифметическую операцию с любым типом данных, который не является числом.

В этом примере мы создаем функцию, которая умножает два числа. Но так как мы умножаем числои строку, возвращаемое значение будет NaN . Это все, что на самом деле нужно сделать, если вы когда-нибудь задумаетесь: «Почему возвращается NaN?», обязательно проверьте, какие операции происходят и с какими типами данных эти операции выполняются.

Наконец, у нас есть null, пожалуй, самый необычный тип данных. В отличие от undefined или NaN, null — это тип данных, который может быть напрямую назначен только самим программистом, он не будет назначен автоматически, если что-то не существует или указаны неправильные типы данных. используются в математике.

Тип данных null обычно присваивается переменной, которая станет сложным типом данных, таким образом, это более информативно, чем если возвращается undefined.

Null означает намеренное отсутствие какого-либо значения объекта.

В этом примере мы устанавливаем myFamily равным null. Затем мы устанавливаем myFamily равным массиву членов семьи, используя функцию familyMembers. Этот пример на самом деле не имеет смысла, потому что нет особого смысла устанавливать myFamily равным null, когда вы можете просто установить его непосредственно для своего собственного семейства и даже не использовать функцию.

Я надеюсь, что это улучшило ваше понимание этих примитивных типов данных, которые никуда не годятся, спасибо за чтение!