|
|
--- |
|
|
title: Empty statement |
|
|
slug: Web/JavaScript/Reference/Statements/Empty |
|
|
page-type: javascript-statement |
|
|
browser-compat: javascript.statements.empty |
|
|
sidebar: jssidebar |
|
|
--- |
|
|
|
|
|
An **empty statement** is used to provide no statement, although the |
|
|
JavaScript syntax would expect one. |
|
|
|
|
|
{{InteractiveExample("JavaScript Demo: Empty statement")}} |
|
|
|
|
|
```js interactive-example |
|
|
const array = [1, 2, 3]; |
|
|
|
|
|
// Assign all array values to 0 |
|
|
for (let i = 0; i < array.length; array[i++] = 0 /* empty statement */); |
|
|
|
|
|
console.log(array); |
|
|
// Expected output: Array [0, 0, 0] |
|
|
``` |
|
|
|
|
|
## Syntax |
|
|
|
|
|
```js-nolint |
|
|
; |
|
|
``` |
|
|
|
|
|
## 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](/en-US/docs/Web/JavaScript/Reference/Statements/block), |
|
|
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: |
|
|
|
|
|
```js-nolint |
|
|
const 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: |
|
|
|
|
|
```js-nolint example-bad |
|
|
if (condition); // Caution, this "if" does nothing! |
|
|
killTheUniverse(); // So this always gets executed!!! |
|
|
``` |
|
|
|
|
|
## Specifications |
|
|
|
|
|
{{Specifications}} |
|
|
|
|
|
## Browser compatibility |
|
|
|
|
|
{{Compat}} |
|
|
|
|
|
## See also |
|
|
|
|
|
- [Block statement](/en-US/docs/Web/JavaScript/Reference/Statements/block) |
|
|
|