JavaScript (JS) проверка на «null» осуществляется при помощи оператора строгого равенства «===». Подробнее об этом поговорим чуть ниже, а пока давайте разберемся, что такое «null». Многие начинающие разработчики путают этот тип данных с «undefined», хотя между ними есть большая разница.
Язык программирования JavaScript несет в себе 2 группы типов данных:
объекты — представляют сложную структуру, состоящую из множества значений и аргументов;
примитивные данные — строка, символ, число, логическое значение и др.
Объект выглядит примерно так:
let SimpleObject = {
firstName: `Дормидонт`
};
Однако может случиться такое, что объект вроде бы есть, но по каким-то причинам у него отсутствуют значения и аргументы. В таких ситуациях в JavaScript применяется примитивное значение «null», которое как раз указывает не на отсутствие объекта, а на отсутствие аргументов у объекта. Например:
let SimpleObject = null;
Что такое «null» в JavaScript
«Null» — это примитивный тип данных, который показывает, что у объекта отсутствует какое-либо значение. Если «null» наблюдается в скрипте, тогда это означает одно — объект, который должен быть в скрипте, не создан, потому что не имеет никаких значений. Другими словами, он пуст.
Можно провести аналогию из реальной жизни. Например, вы в интернет-магазине выбрали и заказали себе робот-пылесос. Ваш пылесос приходит, упакованный в коробку по почте. Вы открываете коробку, а там пусто — ничего нет. Каким-то образом к вам пришел не робот-пылесос, а пустая коробка от него, потому что кто-то где-то ошибся. Пустая коробка — это переменная или объект со значением «null». Таким образом, мы видим, что объект определен — это «коробка с роботом-пылесосом», но он пустой (пылесоса в коробке нет).
Проверка в JS на «null»
Проверка на «null» в JS делается традиционным и рекомендованным способом — с использованием оператора строго равенства «===». Как это выглядит в коде:
const disappearedObject = null;
const presentObject = { message: 'Привет, Дормидонт!' };
disappearedObject === null; // вернет нам «true»
presentObject === null; // вернет нам «false»
В коде видно, что:
«disappearedObject === null» вернет нам значение «true», потому что объект «disappearedObject» несет в себе значение «null»;
когда объект содержит какое-то значение, тогда проверка на «null» вернет значение «false», как у нас в примере: «presentObject === null» возвращает «false».
Проверка на «null» в JavaScript может быть осуществлена при помощи условных операторов. «Null» для условных операторов будет расцениваться как ложное значение «false». Кстати, такая же ситуация наблюдается и с «undefined», «NaN», «0», «`».
Как это выглядит в коде:
Boolean(null); // вернет нам «false»
if (null) {
console.log('«null» будет истинным значением');
} else {
console.log('«null» будет ложным значением'); // в консоль нам вернется «`«null» будет ложным значением`»
Сравниваем «null» и «undefined»
«Undefined» означает, что переменную или объект не инициализировали, то есть не придали никакого значения. Если вернуться к нашему примеру с интернет-магазином, тогда по аналогии вы должны были оформить заказ без указания товара, который заказываете. Конечно, с интернет-магазином такая ситуация произойти не могла, а в JavaScript — очень даже.
Например, вы объявили где-то переменную, но забыли присвоить ей начальное значение. Когда вы к ней обратитесь, результат будет «undefined». Как это может быть выражено в коде:
let exampleVariable;
examplevariable; // вернет значение «undefined»
Главное различие между «null» и «undefined» заключается в следующем:
«null» присутствует, когда объект или переменная определены, но находятся с пустым значением;
«undefiled» присутствует тогда, когда объект, переменная или значение вообще не определены.
Эти два значения можно сравнить между собой при помощи операторов сравнения. Если это сделать, то получим следующие результаты:
null === undefined // оператор строгого равенства «===» вернет нам значение «false»
null == undefined // оператор не строгого равенства «==» вернет нам значение «true»
Заключение
Проверка «null» в JS лучше всего осуществляется при помощи оператора строго равенства «===». Другие способы могут дать неожиданные результаты. Само по себе значение «null» говорит о том, что у объекта отсутствует значение, хотя оно там должно было быть. Как с нашим «пылесосом» — он должен был быть в коробке, но коробка оказалась пустой.
Также нужно брать во внимание, что «null» и «undefined» в какой-то степени похожи, однако означают совсем разные вещи, поэтому при строгом сравнении этих двух значений мы получаем «false».
JavaScript