An empty statement is used to provide no statement, although the JavaScript syntax would expect one.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
;
Description
The empty statement is a semicolon (;
) indicating that no statement will be executed, even if JavaScript syntax requires one.
The opposite behavior, where you want multiple statements, but JavaScript only allows a single one, is possible using a block statement, which combines several statements into a single one.
Examples
Empty loop body
The empty statement is sometimes used with loop statements. See the following example with an empty loop body:
let arr = [1, 2, 3];
// Assign all array values to 0
for (let i = 0; i < arr.length; arr[i++] = 0) /* empty statement */ ;
console.log(arr);
// [0, 0, 0]
Unintentional usage
It is a good idea to comment intentional use of the empty statement, as it is not really obvious to distinguish from a normal semicolon.
In the following example, the usage is probably not intentional:
if (condition); // Caution, this "if" does nothing!
killTheUniverse() // So this always gets executed!!!
In the next example, an if...else
statement without curly braces ({}
) is used.
If three
is true
, nothing will happen, four
does not matter, and also the launchRocket()
function in the else
case will not be executed.
if (one)
doOne();
else if (two)
doTwo();
else if (three)
; // nothing here
else if (four)
doFour();
else
launchRocket();
Specifications
Specification |
---|
ECMAScript (ECMA-262)The definition of 'Empty statement' in that specification. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Empty statement (; )
|
Chrome
Full support 3 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 3 |
Opera
Full support 3 |
Safari
Full support 5 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 4.2 |
Samsung Internet Android
Full support 1.0 |
nodejs
Full support 0.1.100 |
Legend
- Full support
- Full support
See also
empty by Mozilla Contributors is licensed under CC-BY-SA 2.5.