Правильная проверка переменной на null в JavaScript
Быстрый ответ
Примените следующий подход:
if (myVar !== null) {
// Код выполнится, если myVar точно не равна null
}
Оператор строгого неравенства !== обеспечит точную проверку, успешно отличая null от undefined и других "ложных" значений, включая 0, "", false или NaN.

Анализ проверки на null
Проверка на null в JavaScript не всегда представляет собой прозрачный процесс, поэтому мы изучим его детальнее.
Проверка на "ложность" значений
Для базовой проверки используйте:
if (myVar) {
// myVar не является "ложным" значением!
}
Такой подход позволит избавиться от null, undefined, 0, "", false и NaN. Таким образом, if (myVar) становится хорошим решением для отбраковки всех "неистинных" значений.
Использование строгого равенства
Будьте внимательны при использовании == и ===. Оператор === проводит проверку и на тип, и на значение, не применяя приведение типов, что невероятно полезно при строгих сравнениях.
Защита от неоднозначных данных
Когда работаешь с внешними данными, приходится прибегать к тактике оборонительного программирования. Явные проверки на null, т.е. (!== null), обезопасят ваш код от некорректных данных, наподобие строки "null" и других.
Определение приоритетов при проверке
Выбор между общей проверкой на истинность (if (myVar)) и явной проверкой на null (if (myVar !== null)) зависит от целей и требований вашего программного кода.
Визуализация
Визуальное представление материала облегчает его усвоение. В качестве наглядного примера рассмотрим проверку на null:
В коробке находятся: [🍎, 🗝️, 🧸, 💎, ✉️]
Задача: Проверить, является ли 💎 настоящим драгоценным камнем.
Вот как мы проводим эту проверку:
let item = 💎; // Берем предмет из коробки.
if (item !== null) {
// Отлично! У нас настоящий драгоценный камень!
console.log("Найден настоящий драгоценный камень 💎, это не подделка!");
} else {
// Камень не обнаружен, пусто
console.log("Камня в коробке не нашлось, возможно, ошибка. 🕳️");
}
ПОДСКАЗКА: При использовании !== null ошибка или обман исключаются. 🕵️♂️✅
Специфические случаи
Строки, выдающие себя за null
Если вы столкнулись с размышляющими проблемами, например с строкой "null", вот ваше решение:
let myVar = "null";
if (myVar !== null && myVar !== "null") {
// Это совершенно точно не null!
}
Не забывайте о таких тонкостях для избежания путаницы в данных!
Непредсказуемые типы данных
В мире, где значения переменных порой поражают, важно оставаться на чеку. Для подобных целей JavaScript предлагает всем нужные инструменты:
const isValid = (typeof myVar !== "undefined" && myVar);
if (isValid) {
// Великолепно! Это не null, не undefined, не false... по-видимому, все в порядке!
}
Берегитесь автоматического приведения типов
Неявное приведение типов может привести к ошибкам при использовании ==. Чтобы избежать неприятных сюрпризов, всегда используйте === при сравнениях.
Полезные материалы
- Falsy – Глоссарий веб-документации MDN — Знакомство с "ложными" значениями в JavaScript.
- Строгое равенство (===) – JavaScript | MDN — Руководство по использованию строгого равенства для точных сравнений.
- Оператор нулевого слияния (??) – JavaScript | MDN — Введение в оператор нулевого слияния и его применение при работе с
null. - Есть ли стандартная функция для проверки на null, undefined или пустые переменные в JavaScript? – Stack Overflow — Обсуждение способов проверки на
nullв JavaScript. - Истинные и ложные значения: когда в JavaScript не все одинаково — SitePoint — Обзор истинных и ложных значений в JavaScript.
- Какой оператор равенства ( против =) следует использовать в сравнениях JavaScript? – Stack Overflow — Знаменитое обсуждение операторов равенства.


