Типы данных. null и undefined

Всем привет! Хорош ковыряться в носу – продолжаем обучаться!

Продолжаем знакомится с типами данных. Сегодня на повестке, аж целых 2 типа - null и undefined.

Тип null

Это тип, который формируется только из одного единственного значения – null. Да-да, null является и типом и значением одновременно. Используется он для того того, чтобы пометить что-либо как "ничего", "пустышка" и т.п.

Зачастую null используется при инициализации какой-либо переменной, которая изначально не имеет никакого значения.

Например:

let agreementAccepted = null;

Т.е, этим мы инициализировали переменную с начальным значением null. Это часто применяется и об этом ты узнаешь дальше, когда мы будем заниматься практикой. Если не указать значение переменной при ее инициализации, то значение переменной будет равно undefined. И, теперь, об этом...

Тип undefined

Тип undefined, так же как и nullявляется и типом и значением. Undefined в дословном переводе означает "не определено". Если переводить с точки зрения ЯП, то undefined нужно понимать как "значение не присвоено".

К примеру:

let agreementAccepted;

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

В мире профессиональной разработки нужно четко понимать разницу между этими типами.

Запомни раз и навсегда! Использовать undefined уместно только в тех местах кода, где ты хочешь проверить существует ли значение как таковое или была ли чем-то инициализирована переменная.

Если хочешь инициализировать переменную с пустым значением, то используй только null. Никакихосознанных переменных с присвоенным в нее значением undefinedбыть в коде не должно!

Мы хотим инициализировать переменную возраста с пустым значением:

let age; //не надо так
let age = undefined; //не надо так
let age = null; //только так!

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