> Как работает приведение типов в выражениях с операторами сравнения в JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Сбер

Стек: JavaScript

> Пример ответа

В JavaScript приведение типов в операторах сравнения работает по-разному в зависимости от используемого оператора.

Нестрогие операторы (==, !=) выполняют приведение типов перед сравнением. Основные правила:

  • Если типы совпадают - сравниваются напрямую.

  • Если один операнд null, а другой undefined - результат true.

  • Если один операнд число, а другой строка - строка преобразуется в число.

  • Если один операнд логический - он преобразуется в число (true → 1, false → 0).

  • Если один операнд объект, а другой примитив - объект преобразуется в примитив через valueOf или toString.

Пример:

JAVASCRIPT
'5' == 5 // true (строка '5' становится числом 5)
false == 0 // true (false → 0)
null == undefined // true

Строгие операторы (===, !==) не выполняют приведение типов. Сравнение возвращает true только если типы и значения совпадают.

Операторы сравнения (<, >, <=, >=) также приводят типы к числам, но с особым правилом для строк: если оба операнда - строки, они сравниваются лексикографически (по Unicode-кодам символов).

Пример:

JAVASCRIPT
'2' > '10' // true (сравнение строк: '2' > '1')
'2' > 10 // false (строка '2' преобразуется в число 2)

Важно: NaN не равен ничему, включая самого себя (NaN == NaNfalse), а null и undefined ведут себя особым образом — при нестрогом равенстве они равны только друг другу, но при сравнении через </> преобразуются в числа (null → 0, undefinedNaN).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью