Выбор ответа Junior Типы и приведение спрашивают часто обновлено

Разница между == и ===

Вопрос

Чем == отличается от ===?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: == перед сравнением приводит операнды к общему типу, === нет. === при разных типах сразу возвращает false, == сначала приводит типы по набору правил (строка к числу, булево к числу, объект к примитиву, особый случай null и undefined).

Варианты ответа

  1. == перед сравнением приводит операнды к общему типу, === нетправильный ответ
  2. === сравнивает объекты по содержимому, а == только по ссылке
  3. == работает только с примитивами, а === с любыми значениями
  4. Разницы в результате нет, просто === быстрее за счёт оптимизаций

Разбор

=== при разных типах сразу возвращает false, == сначала приводит типы по набору правил (строка к числу, булево к числу, объект к примитиву, особый случай null и undefined). Объекты оба оператора сравнивают по ссылке: {a: 1} === {a: 1} и {a: 1} == {a: 1} дают false. == прекрасно работает и с объектами, просто приводит их к примитиву при сравнении с примитивом. И это не вопрос скорости, а разная семантика.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме