Сравнения JavaScript: ===, == и проверка значений
Почему строгое сравнение обычно проще предсказать и как учитывать преобразование типов.
Основная идея
Оператор === сравнивает без неявного приведения разных типов к одному. Поэтому число 5 и строка «5» не равны строго. Оператор == использует дополнительные правила преобразования, которые легко неверно понять в коде формы или фильтра.
Объекты сравниваются по идентичности, а не по совпадению всех полей. Два отдельно созданных объекта с одинаковым содержимым не становятся равными через ===. Для предметного сравнения выбирайте нужные поля или явно определённую стратегию.
Пример JavaScript
console.log(5 === "5");
console.log(5 == "5");
const first = { id: 1 };
const second = { id: 1 };
console.log(first === second);
console.log(first.id === second.id);
Результаты: false, true, false и true. Последняя строка сравнивает числовые идентификаторы, а не сами объекты.
Частая ошибка
Самостоятельная проверка
Сравните значение из текстового поля с числом после Number(). Проверьте пустую строку отдельно, чтобы она не превратилась в допустимый ноль случайно.
Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.