> Какие данные остаются после преобразования типов в JavaScript и когда оно происходит (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Aston
Стек: JavaScript
> Пример ответа
В JavaScript преобразование типов (type coercion) может быть явным (когда разработчик вызывает String(), Number(), Boolean()) или неявным (когда движок сам приводит типы при операциях, например, "5" - 3).
Когда происходит:
- При использовании операторов:
+,-,*,/,==,>,<,!. - В контекстах, где ожидается конкретный тип:
if (value),while (value), логические операторы (&&,||). - При передаче аргументов в функции, если они не соответствуют ожидаемому типу (но это редко).
Какие данные остаются:
- Строковое преобразование (
String()): возвращает строку. Для примитивов - их строковое представление (123→"123",true→"true"). Для объектов -[object Object](если не переопределёнtoString). - Числовое преобразование (
Number()): возвращает число."123"→123,true→1,null→0,undefined→NaN, объекты -NaN(еслиvalueOfне возвращает примитив). - Логическое преобразование (
Boolean()): возвращаетtrueилиfalse. Ложные значения:0,"",null,undefined,NaN,false. Всё остальное -true.
Важно: Неявное преобразование может привести к неожиданным результатам, например: [] + [] → "" (пустая строка), [] + {} → "[object Object]". Поэтому рекомендуется использовать строгое сравнение === и явные преобразования.
> Похожие задачи по frontend
Как реализовать перетаскивание модального окна мышкой на чистом JavaScript с использованием событий?
Если объект является экземпляром класса и методы лежат в прототипе, где их увидим: в for-in или Object.keys
Что такое функция обратного вызова (callback) и когда она вызывается в JavaScript
Как называется подход, когда обработчик клика вешается на контейнер, а событие обрабатывается на дочерних элементах
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью