> Какие данные остаются после преобразования типов в JavaScript и когда оно происходит (JavaScript)

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

Компании: Aston

Стек: JavaScript

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

В JavaScript преобразование типов (type coercion) может быть явным (когда разработчик вызывает String(), Number(), Boolean()) или неявным (когда движок сам приводит типы при операциях, например, "5" - 3).

Когда происходит:

  • При использовании операторов: +, -, *, /, ==, >, <, !.
  • В контекстах, где ожидается конкретный тип: if (value), while (value), логические операторы (&&, ||).
  • При передаче аргументов в функции, если они не соответствуют ожидаемому типу (но это редко).

Какие данные остаются:

  1. Строковое преобразование (String()): возвращает строку. Для примитивов - их строковое представление (123"123", true"true"). Для объектов - [object Object] (если не переопределён toString).
  2. Числовое преобразование (Number()): возвращает число. "123"123, true1, null0, undefinedNaN, объекты - NaN (если valueOf не возвращает примитив).
  3. Логическое преобразование (Boolean()): возвращает true или false. Ложные значения: 0, "", null, undefined, NaN, false. Всё остальное - true.

Важно: Неявное преобразование может привести к неожиданным результатам, например: [] + []"" (пустая строка), [] + {}"[object Object]". Поэтому рекомендуется использовать строгое сравнение === и явные преобразования.

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

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