Порожній оператор

Порожній оператор використовується, щоб не надавати інструкції там, де синтаксис JavaScript їх очікує.

Синтаксис

;

Опис

Порожній оператор - це крапка з комою (;), вона позначає, що жодної інструкції не буде виконано, навіть якщо синтаксис JavaScript її вимагає. Протилежна поведінка, коли ви бажаєте виконати декілька інструкцій, але JavaScript дозволяє лише одну, можлива за допомогою блоку; він об'єднує декілька інструкцій у одну.

Приклади

Порожній оператор іноді використовується у циклах. Дивіться наступний приклад з порожнім тілом циклу:

var arr = [1, 2, 3];

// Присвоїти всім елементам масиву значення 0
for (i = 0; i < arr.length; arr[i++] = 0) /* порожній оператор */ ;

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

Заувага: Гарною ідеєю є коментувати навмисне використання порожнього оператора, оскільки його буває важко відрізнити від звичайної крапки з комою. У наступному прикладі його використання, мабуть, не є навмисним:

if (condition);       // Обережно, цей "if" нічого не робить!
   killTheUniverse()  // Тому це ніколи не виконається!!!

Інший приклад: Конструкція if...else без фігурних дужок ({}). Якщо three дорівнює true, то нічого не відбудеться, four не грає ролі, і, таким чином, функція launchRocket() у випадку else не буде виконана.

if (one)
  doOne();
else if (two)
  doTwo();
else if (three)
  ; // тут нічого
else if (four)
  doFour();
else
  launchRocket();

Специфікації

Специфікація Статус Коментар
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 Початкове визначення.

Сумісність з веб-переглядачами

Update compatibility data on GitHub
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 YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

Див. також