empty

An empty statement is used to provide no statement, although the JavaScript syntax would expect one.

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

DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Empty statement (;)Chrome Full support 3Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 5WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 4.2Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support
Full support

See also