--- title: Инструкции и объявления slug: Web/JavaScript/Reference/Statements tags: - JavaScript - Reference - statements translation_of: Web/JavaScript/Reference/Statements ---
{{jsSidebar("Statements")}}

Приложения на JavaScript состоят из инструкций с соответствующим синтаксисом. Одна инструкция может состоять из нескольких строк. На одной строке может находиться несколько инструкций, если они разделены точкой с запятой. Они являются не ключевыми словами, а группами ключевых слов.

Инструкции и объявления по категориям

Алфавитный список смотрите в боковой панели слева.

Управление потоком выполнения

{{jsxref("Statements/block", "Блок", "", 1)}}
Блок используется для группировки нуля и более инструкций. Блок отделяется парой фигурных скобок.
{{jsxref("Statements/break", "break")}}
Прерывает текущую инструкцию цикла, ветвления или инструкцию с меткой и передаёт управление на инструкцию, следующую за прерываемой.
{{jsxref("Statements/continue", "continue")}}
Прерывает выполнение инструкции в текущей итерации текущего цикла или цикла с меткой и продолжает выполнение цикла со следующей итерации.
{{jsxref("Statements/Empty", "Пустая инструкция", "", 1)}}
Пустая инструкция используется тогда, когда никакой инструкции быть не должно, а по синтаксису JavaScript она требуется.
{{jsxref("Statements/if...else", "if...else")}}
Выполняет инструкцию, если указанное условие является истинным. Если условие ложно, выполняет другую инструкцию.
{{jsxref("Statements/switch", "switch")}}
Вычисляет выражение, сопоставляет вычисленное значение с выражением выбора и выполняет инструкции, ассоциированные с этим выбором.
{{jsxref("Statements/throw", "throw")}}
Выбрасывает пользовательское исключение.
{{jsxref("Statements/try...catch", "try...catch")}}
Помечает блок инструкций и определяет реакцию на возникновение исключения внутри помеченного блока инструкций.

Объявления

{{jsxref("Statements/var", "var")}}
Объявляет переменную, необязательно инициализирует её значением.
{{experimental_inline}} {{jsxref("Statements/let", "let")}}
Объявляет локальную переменную в области видимости блока, необязательно инициализирует её значением.
{{experimental_inline}} {{jsxref("Statements/const", "const")}}
Объявляет именованную константу только для чтения.

Функции

{{jsxref("Statements/function", "function")}}
Объявляет функцию с указанными параметрами.
{{experimental_inline}} {{jsxref("Statements/function*", "function*")}}
Функции-генераторы, упрощающие написание итераторов.
{{jsxref("Statements/return", "return")}}
Определяет значение, возвращаемое из функции.
{{experimental_inline}} {{jsxref("Statements/yield", "yield")}}
Смотрите статьи Что нового в JavaScript 1.7 и Итераторы и генераторы.

Итерации

{{jsxref("Statements/do...while", "do...while")}}
Создаёт цикл, выполняющий указанную инструкцию до тех пор, пока проверяющее условие равно false. Условие вычисляется после выполнения инструкции, так что указанная инструкция выполнится хотя бы один раз.
{{jsxref("Statements/for", "for")}}
Создаёт цикл, состоящий из трёх необязательных выражений, заключённых в круглые скобки и разделённым точками с запятой с последующей инструкцией, выполняющейся в цикле.
{{deprecated_inline}} {{non-standard_inline}} {{jsxref("Statements/for_each...in", "for each...in")}}
Проходит указанной переменной по всем значениям свойств объекта. Выполняет инструкции для каждого уникального свойства.
{{jsxref("Statements/for...in", "for...in")}}
В случайном порядке проходит по перечислимым свойствам объекта. Выполняет инструкции для каждого уникального свойства.
{{experimental_inline}} {{jsxref("Statements/for...of", "for...of")}}
Проходит по итерируемым объектам (включающим в себя {{jsxref("Global_Objects/Array", "массивы", "", 1)}}, массивоподобные объекты и итераторы с генераторами), выполняя пользовательский хук с инструкциями, исполняющимися для значения каждого уникального свойства.
{{jsxref("Statements/while", "while")}}
Создаёт цикл, выполняющий указанную инструкцию до тех пор, пока проверяющее условие равно true. Условие вычисляется перед выполнением инструкции..

Прочее

{{jsxref("Statements/debugger", "debugger")}}
Вызывает любую доступную функциональность отладки. Если функциональность отладки не доступна, эта инструкция ничего не делает.
{{obsolete_inline}} {{jsxref("Statements/export", "export")}}
Используется для экспорта подписанным скриптом свойств, функций и объектов в другие подписанные или неподписанные скрипты. Эта древняя функциональность Netscape была удалена и будет пересмотрена модулями ECMAScript 6.
{{obsolete_inline}} {{jsxref("Statements/import", "import")}}
Используется для импорта скриптом свойств, функций и объектов из подписанного скрипта, который предоставил эту информацию. Эта древняя функциональность Netscape была удалена и будет пересмотрена модулями ECMAScript 6.
{{jsxref("Statements/label", "label")}}
Предоставляет инструкцию с идентификатором, на который вы можете сослаться с помощью инструкций break или continue.
{{deprecated_inline}} {{jsxref("Statements/with", "with")}}
Расширяет цепочку областей видимости инструкции.

Спецификации

Спецификация Статус Комментарии
ECMAScript 1-е издание. Стандарт Изначальное определение.
{{SpecName('ES5.1', '#sec-12', 'Инструкции')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'Язык ECMAScript: инструкции и объявления')}} {{Spec2('ES6')}} Новое в этой спецификации: {{jsxref("Statements/function*", "function*")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/for...of", "for...of")}}, {{jsxref("Statements/yield", "yield")}}.

Смотрите также