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
-
Block
- A block statement is used to group zero or more statements. The block is delimited by a pair of curly brackets.
-
break
- Terminates the current loop, switch, or label statement and transfers program control to the statement following the terminated statement.
-
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.
-
Empty
- An empty statement is used to provide no statement, although the JavaScript syntax would expect one.
-
if...else
- Executes a statement if a specified condition is true. If the condition is false, another statement can be executed.
-
switch
- Evaluates an expression, matching the expression's value to a case clause, and executes statements associated with that case.
-
throw
- Throws a user-defined exception.
-
try...catch
- Marks a block of statements to try, and specifies a response, should an exception be thrown.
Declarations
-
var
- Declares a variable, optionally initializing it to a value.
-
let
- Declares a block scope local variable, optionally initializing it to a value.
-
const
- Declares a read-only named constant.
Functions
-
function
- Declares a function with the specified parameters.
-
function*
- Generators functions enable writing iterators more easily.
-
return
- Specifies the value to be returned by a function.
-
yield
- See New_in_JavaScript 1.7 & Iterators and generators
Iterations
-
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.
-
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.
-
for each...in
- Iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
-
for...in
- Iterates over the enumerable properties of an object, in arbitrary order. For each distinct property, statements can be executed.
-
for...of
- Iterates over iterable objects (including arrays, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
-
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
-
debugger
- Invokes any available debugging functionality. If no debugging functionality is available, this statement has no effect.
-
export
- Used to allow a signed script to provide properties, functions, and objects to other signed or unsigned scripts. This ancient Netscape functionality has been removed and will be redefined by ECMAScript 6 modules.
-
import
- Used to allow a script to import properties, functions, and objects from a signed script that has exported the information. This ancient Netscape functionality has been removed and will be redefined by ECMAScript 6 modules.
-
label
-
Provides a statement with an identifier that you can refer to using a
break
orcontinue
statement.
-
with
- Extends the scope chain for a statement.
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition. | Standard | Initial definition. |
ECMAScript 5.1 (ECMA-262) The definition of 'Statements' in that specification. |
Standard | |
ECMAScript 6 (ECMA-262) The definition of 'ECMAScript Language: Statements and Declarations' in that specification. |
Draft | New: function*, let, for...of, yield |