Operatore virgola

L'operatore virgola valuta ciascuno dei suoi operandi, da sinistra a destra, e restituisce il valore dell'ultimo operando.

Sintassi

expr1, expr2, expr3...

Parametri

expr1, expr2, expr3...
Qualsiasi espressione.

Descrizione

Puoi utilizzare l'operatore virgola quando vuoi includere più espressioni in una posizione che richiede una singola espressione. L'uso più comune di questo operatore Ã¨ di fornire più parametri in un ciclo for.

L'operatore virgola è completamente differente dalla virgola utilizzata negli array, negli oggetti, e negli argomenti e parametri di funzione.

Esempi

Considerando a un array di 2 dimensioni contenente 10 elementi per ciascun lato, il seguente codice utilizza l'operatore virgola per incrementare i e decrementare j contemporaneamente.

Il seguente codice stampa i valori degli elementi in posizione diagonale dell'array:

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

Si noti che gli operatori virgola nelle assegnazioni potrebbero non avere l'effetto normale degli operatori virgola perché non esistono all'interno di un'espressione. Nel seguente esempio, a é impostato al valore di b = 3 (che é 3), ma l'espressione c = 4 continua a essere valutata e il suo valore viene restituito alla console (cioé 4). Questo é dovuto alla precedenza e all'associtività dell'operatore.

var a, b, c;

a = b = 3, c = 4; // restituisce 4 nella console
console.log(a); // 3 (più a sinistra)

var x, y, z;

x = (y = 5, z = 6); // restituisce 6 nella console
console.log(x); // 6 (più a destra)

Elaborazione e restituzione

Un altro esempio che si potrebbe fare con l'operatore virgola Ã¨ quello di eleborare prima di restituire. Come detto, solo l'ultimo elemento viene restituito ma anche tutti gli altri vengono valutati. Quindi, si potrebbe fare:

function myFunc() {
  var x = 0;

  return (x += 1, x); // stesso comportamento di ++x;
}

Specificazioni

Compatibilità con i browser

BCD tables only load in the browser

Vedi anche