Чему равно null javascript

null

Значение null представляет отсутствие какого-либо объектного значения. В JavaScript, null является примитивом, и в контексте логических операций, рассматривается как ложное (falsy).

Интерактивный пример

Синтаксис

Описание

Значение null записывается литералом null . Оно является самостоятельным, а не свойством глобального объекта (как undefined ). В API, null часто присутствует в местах где ожидается объект, но подходящего объекта нет.

// переменная foo не существует - она не была определена и никогда не инициализировалась: > foo 'ReferenceError: foo is not defined' // переменная foo существует, но она не имеет ни типа, ни значения: > var foo = null; foo 'null' 

Отличия между null и undefined

null является определённым значением отсутствия объекта, тогда как undefined обозначает неопределённость. Например:

var element; // значение переменной element до её инициализации не определённо: undefined element = document.getElementById('not-exists'); // здесь при попытке получения несуществующего элемента, метод getElementById возвращает null // переменная element теперь инициализирована значением null, её значение определено 

При проверке на null или undefined , помните о различии между операторами равенства (==) и идентичности (===): с первым, выполняется преобразование типов.

typeof null // object (не "null" из соображений обратной совместимости) typeof undefined // undefined null === undefined // false null == undefined // true 

Спецификации

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Читайте также:  Java send bytes to socket

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

null

Примитивный тип данных. Состоит из единственного значения null и обозначает отсутствие значения.

Время чтения: меньше 5 мин

Кратко

Скопировать ссылку «Кратко» Скопировано

Null — это примитивный тип данных, который состоит из единственного значения null .

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

Пример

Скопировать ссылку «Пример» Скопировано

 const password = null const password = null      

В списке важных дел по дням недели пользователь решил, что в субботу и воскресенье главного дела нет:

 const mainFocusByDays =  mon: 'Исправить баг в вёрстке', tue: 'Разобрать почту', wed: 'Написать бота', thu: 'Изучить примитивные типы', fri: 'Отправить резюме в Яндекс', sat: null, sun: null> const mainFocusByDays =  mon: 'Исправить баг в вёрстке', tue: 'Разобрать почту', wed: 'Написать бота', thu: 'Изучить примитивные типы', fri: 'Отправить резюме в Яндекс', sat: null, sun: null >      

Как понять

Скопировать ссылку «Как понять» Скопировано

null обозначает понятия «отсутствует», «ничего», «пусто» или «значение неизвестно». Оно всегда явно задаётся программистом, JavaScript автоматически не устанавливает его.

В JavaScript null используется только для обозначения конца цепочки прототипов, чтобы показать, что следующий прототип отсутствует.

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

Например, сам JavaScript использует undefined для обозначения не проинициализированных переменных:

 let newValue console.log(newValue)// undefined // в явном виде говорим, что значение отсутствуетnewValue = null let newValue console.log(newValue) // undefined // в явном виде говорим, что значение отсутствует newValue = null      

На практике

Скопировать ссылку «На практике» Скопировано

Николай Лопин советует

Скопировать ссылку «Николай Лопин советует» Скопировано

🛠 Оператор typeof некорректно определяет тип у null и возвращает значение ‘object’ по историческим причинам.

 console.log(typeof null)// 'object' console.log(typeof null) // 'object'      

🛠 Разделение между undefined и null очень слабое. Это рекомендация, которую не все выполняют. Команды могут договориться о своей трактовке этих значений.

Например, в приложении нужно отобразить список пользователей, полученный с сервера. Пока данных нет, мы рисуем заглушку. В этом случае мы можем трактовать значение undefined как «отправили запрос на сервер, рисуем заглушку и ждём ответа», а null как «сервер ответил, что у него нет данных».

🛠 Уточняйте договорённости по undefined и null на проекте. Часто они не зафиксированы на бумаге, но имеют большое значение.

На собеседовании

Скопировать ссылку «На собеседовании» Скопировано

В чём разница между null , undefined и объявленной переменной без начального значения? ( let foo; )

Скопировать ссылку «В чём разница между null, undefined и объявленной переменной без начального значения? (let foo;)» Скопировано

Скопировать ссылку «Александр Рассудихин отвечает» Скопировано

null обычно задаётся переменной явно и означает, что она ничего не содержит. undefined показывает, что значение переменной «не определено». undefined обычно присваивается переменной, когда она была объявлена, но не было определено её начальное значение. Также, undefined может возвращаться и из функции — это происходит, если функции явно не возвращает ничего другого. null же обычно возвращают из функции явно, чтобы показать, что результат функции равен «ничему».

Без начального значения можно оставлять только переменную объявленную через let или var . Если объявить переменную через const и не задать ей начального значения, будет ошибка: Uncaught SyntaxError : Missing initializer in const declaration .

Оператор typeof для null работает странно. typeof ( null ) выдаст нам строку ‘object’. Это официально признанная ошибка в языке, сохраняемая для совместимости. Ошибка тут в том, что null это отдельный тип данных, а не объект. С undefined всё куда лучше и typeof ( undefined ) выдаст нам ‘undefined’. Почитать ещё о typeof можно здесь.

Поговорим немного о приведении типов. Для начала, пример:

 console.log(null + null); // 0console.log(undefined + undefined); // NaN console.log(null + null); // 0 console.log(undefined + undefined); // NaN      

null во время сложения приводится к нулю. Это логично, так как числовым значением «ничего» является как раз 0.
С undefined другое поведении, так как JavaScript пытается привести его к числу, но у него не получается и в результате мы получаем NaN .

Немного упомяну и про оператор нулевого слияния ( ? ? ). В выражении между двумя операндами, он будет возвращать первый операнд, если он не равен null или undefined . Можно сказать, что ? ? приравнивает смысл undefined и null к «ничего не содержит» и в этом случае, кладёт в переменную значение второго операнда.

Источник

Оцените статью