---
title: Polecenia
slug: Web/JavaScript/Reference/Statements
tags:
- Dokumentacja_JavaScript
- Dokumentacje
- JavaScript
- Strony_wymagające_dopracowania
- Wszystkie_kategorie
translation_of: Web/JavaScript/Reference/Statements
original_slug: Web/JavaScript/Referencje/Polecenia
---
{{jsSidebar("Statements")}}
JavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn't a keyword, but a group of keywords.
Statements and declarations by category
For an alphabetical listing see the sidebar on the left.
Control flow
- {{jsxref("Statements/block", "Block")}}
- A block statement is used to group zero or more statements. The block is delimited by a pair of curly brackets.
- {{jsxref("Statements/break", "break")}}
- Terminates the current loop, switch, or label statement and transfers program control to the statement following the terminated statement.
- {{jsxref("Statements/continue", "continue")}}
- Terminates execution of the statements in the current iteration of the current or labeled loop, and continues execution of the loop with the next iteration.
- {{jsxref("Statements/Empty", "Empty")}}
- An empty statement is used to provide no statement, although the JavaScript syntax would expect one.
- {{jsxref("Statements/if...else", "if...else")}}
- Executes a statement if a specified condition is true. If the condition is false, another statement can be executed.
- {{jsxref("Statements/switch", "switch")}}
- Evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case.
- {{jsxref("Statements/throw", "throw")}}
- Throws a user-defined exception.
- {{jsxref("Statements/try...catch", "try...catch")}}
- Marks a block of statements to try, and specifies a response, should an exception be thrown.
Declarations
- {{jsxref("Statements/var", "var")}}
- Declares a variable, optionally initializing it to a value.
- {{jsxref("Statements/let", "let")}}
- Declares a block scope local variable, optionally initializing it to a value.
- {{jsxref("Statements/const", "const")}}
- Declares a read-only named constant.
Functions and classes
- {{jsxref("Statements/function", "function")}}
- Declares a function with the specified parameters.
- {{jsxref("Statements/function*", "function*")}}
- Generator Functions enable writing iterators more easily.
- {{jsxref("Statements/async_function", "async function")}}
- Declares an async function with the specified parameters.
- {{jsxref("Statements/return", "return")}}
- Specifies the value to be returned by a function.
- {{jsxref("Statements/class", "class")}}
- Declares a class.
Iterations
- {{jsxref("Statements/do...while", "do...while")}}
- Creates a loop that executes a specified statement until the test condition evaluates to false. The condition is evaluated after executing the statement, resulting in the specified statement executing at least once.
- {{jsxref("Statements/for", "for")}}
- Creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop.
- {{deprecated_inline}} {{non-standard_inline()}} {{jsxref("Statements/for_each...in", "for each...in")}}
- Iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
- {{jsxref("Statements/for...in", "for...in")}}
- Iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
- {{jsxref("Statements/for...of", "for...of")}}
- Iterates over iterable objects (including {{jsxref("Global_Objects/Array","arrays","","true")}}, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
- {{jsxref("Statements/while", "while")}}
- Creates a loop that executes a specified statement as long as the test condition evaluates to true. The condition is evaluated before executing the statement.
Others
- {{jsxref("Statements/debugger", "debugger")}}
- Invokes any available debugging functionality. If no debugging functionality is available, this statement has no effect.
- {{jsxref("Statements/export", "export")}}
- Used to export functions to make them available for imports in external modules, another scripts.
- {{jsxref("Statements/import", "import")}}
- Used to import functions exported from an external module, another script.
- {{jsxref("Statements/label", "label")}}
- Provides a statement with an identifier that you can refer to using a
break
or continue
statement.
- {{deprecated_inline}} {{jsxref("Statements/with", "with")}}
- Extends the scope chain for a statement.
Specifications
Specification |
Status |
Comment |
{{SpecName('ES1', '#sec-12', 'Statements')}} |
{{Spec2('ES1')}} |
Initial definition |
{{SpecName('ES3', '#sec-12', 'Statements')}} |
{{Spec2('ES3')}} |
|
{{SpecName('ES5.1', '#sec-12', 'Statements')}} |
{{Spec2('ES5.1')}} |
|
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} |
{{Spec2('ES6')}} |
New: function*, let, for...of, yield, class |
{{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} |
{{Spec2('ESDraft')}} |
|
Browser compatibility
{{Compat("javascript.statements")}}
See also