>var х = 0 // Здесь точка с запятой опущена
>;[х,х+1,х+2].forEach(console.log) // Защитная ; обеспечивает обособленность
> // этой инструкции
Из общего правила, согласно которому интерпретатор JavaScript воспринимает разрывы строк как точки с запятой, когда он не может интерпретировать вторую строку как продолжение инструкции в первой строке, имеется два исключения. Первое исключение связано с инструкциями >return, break
и >continue
(глава 5). Эти инструкции часто используются отдельно, но иногда вслед за ними указываются идентификаторы или выражения. Если разрыв строки находится сразу за любым из этих слов (перед любой другой лексемой), JavaScript всегда будет интерпретировать этот разрыв строки как точку с запятой. Например, если записать:
>return
>true;
интерпретатор JavaScript предположит, что программист имеет в виду следующее:
>return; true;
Хотя на самом деле программист, видимо, хотел написать:
>return true;
Это означает, что вы не должны вставлять разрыв строки между ключевым словом >return, break
или >continue
и выражением, следующим за ним. Если вставить разрыв строки в таком месте, программный код, скорее всего, будет порождать ошибку во время выполнения, которую будет сложно отыскать во время отладки.
Второе исключение связано с операторами >++
и >--
(раздел 4.8). Эти операторы могут быть префиксными, т. е. располагаться перед выражением, и постфиксными, т. е. располагаться после выражения. Если вам потребуется использовать любой из этих операторов в постфиксной форме записи, он должен находиться в той же строке, что и выражение, к которому применяется этот оператор. В противном случае разрыв строки будет интерпретироваться как точка с запятой, а оператор >++
или >--
будет интерпретироваться как префиксный оператор, применяемый к выражению, следующему далее. Например, взгляните на следующий фрагмент:
>х
>++
>У
Он будет интерпретирован как >х; ++у;
, а не как >х++; у
.