🤩В чём отличие null от undefined ?



null и undefined оба представляют значения, которые указывают на "отсутствие значения", но между ними есть ключевые отличия:



undefined

- Переменная была объявлена, но не была инициализирована, то есть ей не было присвоено какое-либо значение. Это значение по умолчанию для переменных, объявленных с помощью var, let или const, а также для аргументов функций, которым не были переданы значения, и для возвращаемого значения функций, которые не возвращают явно какое-либо значение.

- Также является типом данных. То есть typeof undefined вернёт "undefined".



null

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

- В отличие от undefined, он является объектом. То есть typeof null вернёт "object", что может быть немного запутывающим. Это известная особенность языка, сохраняемая для обратной совместимости.



Когда использовать

Используйте undefined для проверки, была ли переменная инициализирована или определена функция/параметр.

Используйте null в качестве намеренного отсутствия какого-либо объектного значения. Это полезно, например, при инициализации переменной, которая позже должна быть назначена объекту.



Сравнение

- При нестрогом сравнении (==) null и undefined считаются равными, потому что оба представляют отсутствие значения. То есть null == undefined вернёт true.

- При строгом сравнении (===), которое учитывает тип данных, они считаются различными: null === undefined вернёт false.



Str (IT-Community) | #ВопросыДляСобесов