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; it combines several statements into a single one.

Examples

The empty statement is sometimes used with loop statements. See the following example with an empty loop body:

var arr = [1, 2, 3];

// Assign all array values to 0
for (i = 0; i < arr.length; arr[i++] = 0) /* empty statement */ ;

console.log(arr)
// [0, 0, 0]

Note: It is a good idea to comment the intentional use of the empty statement, as it is not really obvious to distinguish between 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!!!

Another Example: An if...else statement without curly braces ({}). 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 Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Empty statement' in that specification.
Draft  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Empty statement' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'Empty statement' in that specification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
The definition of 'Empty statement' in that specification.
Standard  
ECMAScript 1st Edition (ECMA-262)
The definition of 'Empty statement' in that specification.
Standard Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

See also

Document Tags and Contributors

Contributors to this page: schalkneethling, fscholz, jameshkramer, AviKav, Sebastianz, teoli, rogp
Last updated by: schalkneethling,