Web/JavaScript/Reference/statements/empty-2

From Get docs


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

Update compatibility data on GitHub

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
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.