Какой оператор используется для прерывания цикла
Что проверяют
Базовое знание управления потоком в JavaScript и, главное, понимание, чем цикл отличается от метода массива. Обычно сразу уточняют: как выйти из forEach и как прервать внешний цикл из вложенного.
Как отвечать
Цикл прерывает break: выполнение переходит к коду после цикла. Рядом стоит назвать родственные инструменты, не путая их роли:
break: завершает ближайшийfor,while,do...while,for...of,for...inили выходит изswitch;continue: не прерывает цикл, а пропускает остаток текущей итерации и переходит к следующей;- метки:
outer: for (...) { for (...) { if (found) break outer; } }выходит сразу из внешнего цикла без флагов,continue outerтоже работает; return: внутри функции завершает и цикл, и саму функцию.
Дальше важная часть про методы массивов. forEach, map, filter принимают колбэк, и break внутри него даёт SyntaxError, а return лишь завершает текущий вызов колбэка, перебор продолжается. Если нужна остановка по условию, берите for...of или метод, который останавливается сам: some (до первого true), every (до первого false), find и findIndex. Выход из forEach через throw технически возможен, но это злоупотребление исключениями.
Сильный плюс к ответу: break в for...of вызывает у итератора метод return(), поэтому генератор успевает выполнить свой блок finally, а в for await...of так же корректно закрывается асинхронный источник. В коде компонентов прерывание цикла встречается редко: чаще это find по массиву или ранний return из обработчика, и такой пример из практики тоже уместен.
Где спотыкаются
Называют continue оператором прерывания цикла. Он прерывает итерацию, а не цикл, и интервьюер обязательно это отметит.
Пишут break внутри forEach или верят, что return в колбэке остановит перебор.
Для выхода из вложенных циклов городят флаги и лишние проверки, не зная про метки. В продакшен-коде метки редкость, но знать их нужно, как и уметь заменить вложенный перебор отдельной функцией с return.