Разница между == и === в JavaScript
JavaScript имеет как строгое(===), так и преобразовывающее тип (==) сравнения. Для строгого равенства (===) сравниваемые объекты должны иметь не только равные значения, но и одинаковый тип.
Можно добавить следующее:
- Две строки строго равны, если они имеют одинаковую последовательность символов, одинаковой длины и одинаковых символов в соответствующих позициях.
- Два числа строго равны, когда они численно равны (имеют одинаковое числовое значение). NaN не равно ничему, включая NaN. Положительные и отрицательные нули равны друг другу.
- Два булевых операнда строго равны, если оба являются истинными, или оба являются ложными.
- Два объекта строго равны, если они ссылаются на один и тот же объект.
- Нулевые и неопределенные типы == (но не ===). [то есть (Null == Undefined) истинно, но (Null === Undefined) является ложным]
- 0 == false // true
- 0 === false // false, так как разные типы
- 1 == "1" // true, происходит автоматическая конвертация
- 1 === "1" // false, так как разные типы
- null == undefined // true
- null === undefined // false
- '0' == false // true
- '0' === false // false
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.