Спросят с вероятностью 17%
null и undefined оба представляют значения, которые указывают на "отсутствие значения", но между ними есть ключевые отличия:
undefined
- Переменная была объявлена, но не была инициализирована, то есть ей не было присвоено какое-либо значение. Это значение по умолчанию для переменных, объявленных с помощью
var, let или const, а также для аргументов функций, которым не были переданы значения, и для возвращаемого значения функций, которые не возвращают явно какое-либо значение.- Также является типом данных. То есть
typeof undefined вернёт "undefined".null
- Используется для явного указания на отсутствие объекта или значения. Это сигнал для программиста о том, что переменная должна служить для хранения объекта, но в данный момент она "пуста" или не указывает на какой-либо объект.
- В отличие от
undefined, он является объектом. То есть typeof null вернёт "object", что может быть немного запутывающим. Это известная особенность языка, сохраняемая для обратной совместимости.Когда использовать
✅ Используйте
undefined для проверки, была ли переменная инициализирована или определена функция/параметр.✅ Используйте
null в качестве намеренного отсутствия какого-либо объектного значения. Это полезно, например, при инициализации переменной, которая позже должна быть назначена объекту.Сравнение
- При нестрогом сравнении (
==) null и undefined считаются равными, потому что оба представляют отсутствие значения. То есть null == undefined вернёт true.- При строгом сравнении (
===), которое учитывает тип данных, они считаются различными: null === undefined вернёт false.В целом, null и undefined играют важную роль в представлении и обработке отсутствия данных, но их семантическое значение и использование различаются, что важно учитывать при разработке программ.
➡️ Примеры ответов
➡️Список всех вопросов на Frontend Developer
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые