JavaScript | Оператор break

JavaScript | Оператор break

 

Зачем нужен оператор 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 - JavaScript
Прекращение работы цикла при помощи оператора break — JavaScript

 

Синтаксис оператора 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

Оператор continue

Стандарт 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

Оператор return

Стандарт 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

Алгоритмические обозначения

Условные обозначения