> Как выполняется цикл с условием сравнения строки и числа в JavaScript? (JavaScript)

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

Компании: TYMY

Стек: JavaScript

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

В JavaScript при сравнении строки и числа в цикле (например, while или for) происходит неявное приведение типов. Строка преобразуется в число, если это возможно. Если строка не является числом, результатом сравнения будет false, и цикл может не выполниться или выполняться некорректно.

Пример с while:

JAVASCRIPT
let i = 0;
let target = "5"; // строка
while (i < target) { // строка "5" приводится к числу 5
console.log(i);
i++;
}
// Вывод: 0, 1, 2, 3, 4

Здесь "5" становится числом 5, цикл выполняется, пока i < 5.

Если строка нечисловая (например, "abc"), она преобразуется в NaN, и любое сравнение с NaN возвращает false, поэтому цикл не выполнится ни разу:

JAVASCRIPT
let i = 0;
while (i < "abc") { // NaN, условие ложно
console.log(i); // не выполнится
}

Для безопасного сравнения рекомендуется явно преобразовывать строку в число с помощью Number() или parseInt():

JAVASCRIPT
let target = "5";
let i = 0;
while (i < Number(target)) {
console.log(i);
i++;
}

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

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