Ви на редагованій версії MDN Web Docs

Переглянути як користувач MDN Web Docs: https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Operators/Comma_Operator

Оператор кома (,) обчислює кожний свій операнд (зліва направо) і повертає значення останнього операнду. Це дозволяє створити складений вираз, де обчислюється більше одного виразу, а остаточним значенням складеного виразу є значення крайнього правого з його виразів. Зазвичай, його використовують, щоб передати декілька параметрів у цикл for.

Синтаксис

expr1, expr2, expr3...

Параметри

expr1, expr2, expr3...
Один або більше виразів, останній з яких буде повернений в якості значення складеного виразу.

Опис

Ви можете скористатись оператором кома, коли бажаєте використати декілька виразів там, де вимагається лише один. Найбільш поширене використання цього оператора - це подання декількох параметрів у цикл for.

Оператор кома повністю відмінний від коми у масивах, об'єктах та аргументах та параметрах функцій.

Приклади

Якщо a - 2-вимірний масив з 10 елементів по кожній стороні, наступний код використовує оператор кома, щоб збільшити i та зменшити j одночасно.

Наступний код виводить значення діагональних елементів масиву:

for (var i = 0, j = 9; i <= 9; i++, j--)
  console.log('a[' + i + '][' + j + '] = ' + a[i][j]);

Зауважте, що оператори кома у присвоєннях можуть, на перший вигляд, не мати свого звичайного ефекту, тому що вони не існують всередині виразу. У наступному прикладі a присвоюється значення b = 3 (тобто, 3), але вираз c = 4 все одно обчислюється, і його результат повертається у консоль (тобто, 4). Причиною є пріоритет і асоціативність операторів.

var a, b, c;

a = b = 3, c = 4; // Повертає у консоль 4
console.log(a); // 3 (крайній зліва)

var x, y, z;

x = (y = 5, z = 6); // Повертає у консоль 6
console.log(x); // 6 (крайній справа)

Обробка перед поверненням

Інший приклад того, що можна зробити оператором кома - це обробка перед поверненням. Як зазначалося, тільки останній елемент буде повернений, але всі інші також будуть обчислені. Отже, можна зробити таке:

function myFunc() {
  var x = 0;

  return (x += 1, x); // те саме, що return ++x;
}

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

Специфікація
ECMAScript (ECMA-262)
The definition of 'Comma operator' in that specification.

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

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Comma operatorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Див. також

Мітки документа й учасники

Зробили внесок у цю сторінку: DariaManko
Востаннє оновлена: DariaManko,