Зачем нужен оператор break в JavaScript?
Оператор break
нужен для прерывания работы цикла и выхода из него.
Представьте, что у вас есть сканер сайта, который отслеживает нахождение пользователя на определённой странице сайта в данный момент времени. Пока пользователь активен и смотрит на страницу мы будем обновлять для него содержимое новостей, но как только он перестанет быть активным, через 2 минуты мы прекратим посылать ему информацию о новых публикациях.
Обновление информации на странице похоже на работу цикла. Когда пользователь неактивен, тогда цикл прерывается. В данном случае «не активность» является условием выхода(прерывания).
Пример работы прерывания
Есть массив:
var massiv = [1, 5, 2, 8, 3, 9, 4, 5, 6, 12, 10, 5, 11]
Мы хотим ОТБИРАТЬ из этого массива все элементы, пока не встретим значение 9.
for(i=0, x=[]; i<massiv.length; i++){ if(massiv[i]==9){break}else{x.push(massiv[i])} }
После работы цикла в переменной x будет лежать массив:
[1, 5, 2, 8, 3]
Массив не был заполнен до конца. Сработало прерывание цикла.
Синтаксис оператора break
BreakStatement [Yield, Await] :
break ;
break [не LineTerminator здесь] LabelIdentifier [?Yield, ?Await] ;
Статическая семантика: ранние ошибки
BreakStatement : break ;
Это синтаксическая ошибка, если этот BreakStatement не вложен, прямо или косвенно (но не пересекает границы функции), в IterationStatement или SwitchStatement.
Семантика времени выполнения: оценка
BreakStatement : break ;
1. Вернуть Completion { [[Type]]:break
, [[Value]]:empty
, [[Target]]:empty
}.
BreakStatement : break LabelIdentifier ;
1. Пусть label будет StringValue из LabelIdentifier. 2. Вернуть Completion { [[Type]]:break
, [[Value]]:empty
, [[Target]]:label
}.
Информационные ссылки
Что такое внезапное завершение? (abrupt completion)
Зарезервированные слова (ReservedWord)
Стандарт ECMAScript — Раздел «12.6.2 Keywords and Reserved Words» — https://tc39.es/ecma262/#prod-ReservedWord
Стандарт ECMAScript — Раздел «14.8 The continue Statement» — https://tc39.es/ecma262/#sec-continue-statement
Стандарт ECMAScript — Раздел «14.9 The break Statement» — https://tc39.es/ecma262/#sec-break-statement
Стандарт ECMAScript — Раздел «14.10 The return Statement» — https://tc39.es/ecma262/#sec-return-statement
Стандарт ECMAScript — Раздел «14.14 The throw Statement» — https://tc39.es/ecma262/#sec-throw-statement