Ο τελεστής κόμμα αποτιμά κάθε τελεστέο του (από τα αριστερά προς τα δεξιά) και επιστρέφει τη τιμή του τελευταίου τελεστέου.

Σύνταξη

έκφραση1, έκφραση2, έκφραση3...

Παράμετροι

έκφραση1, έκφραση2, έκφραση3...
Οποιαδήποτε έκφραση.

Περιγραφή

Μπορείτε να χρησιμοποιήσετε τον τελεστή κόμμα όποτε θέλετε να συμπεριλάβετε πολλαπλές εκφράσεις σε σημείο που απαιτείται μία έκφραση. Η πιο κοινή χρήση αυτού του τελεστή είναι η προμήθεια πολλαπλών παραμέτρων σε έναν for βρόχο.

Παραδείγματα

Αν a είναι ένας διδιάστατος πίνακας με 10 στοιχεία σε κάθε πλευρά, ο ακόλουθος κώδικας χρησιμοποιεί τον τελεστή κόμμα για να αυξήσει δύο μεταβλητές με την μία.

Ο ακόλουθος κώδικας εκτυπώνει τις τιμές των διαγώνιων στοιχείων του πίνακα:

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

Παρατηρήστε ότι το κόμμα στις αναθέσεις όπως στην var δήλωση μπορεί να μην έχει το κανονικό αποτέλεσμα του τελεστή κόμμα επειδή δεν υπάρχει μέσα σε έκφραση. Στο ακόλουθο παράδειγμα, το a παίρνει την τιμή του b = 3 (η οποία είναι 3), αλλά η έκφραση c = 4 επίσης αποτιμάται και το αποτέλεσμά της επιστρέφει στην κονσόλα (δηλαδή, 4). Αυτό οφείλεται στην προτεραιότητα τελεστών και προσεταιριστικότητα.

// Παρατηρήστε οτι τα παρακάτω δημιουργούν globals το οποίο απαγορεύεται στο strict mode.

a = b = 3, c = 4; // Επιστρέφει 4 στην κονσόλα
console.log(a); // 3 (αριστερότερο)

x = (y = 5, z = 6); // Επιστρέφει 6 στην κονσόλα
console.log(x); // 6 (δεξιότερο)

Ο τελεστής κόμμα είναι τελείως διαφορετικός από το κόμμα μέσα σε πίνακες, αντικείμενα, και ορίσματα και παραμέτρους συνάρτησης.

Επεξεργασία και επιστροφή

Ένα παράδειγμα ακόμα που μπορεί να κάνει κάποιος με τον τελεστή κόμμα είναι επεξεργασία πρίν την επιστροφή. Όπως αναφέρθηκε, μόνο το τελευταίο στοιχείο θα γυρίσει, πλην όμως, όλα τα άλλα πρόκειται να αποτιμηθούν εξίσου. Οπότε, κάποιος θα μπορούσε να κάνει:

function myFunc() {
  var x = 0;

  return (x += 1, x); // Ίδιο με το return ++x;
}

Προδιαγραφές

Προδιαγραφή Κατάσταση Σχόλιο
ECMAScript Latest Draft (ECMA-262)
The definition of 'Comma operator' in that specification.
Living Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Comma operator' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'Comma operator' in that specification.
Standard  
ECMAScript 1st Edition (ECMA-262)
The definition of 'Comma operator' in that specification.
Standard Αρχικός Ορισμός

Συμβατότητα Προγράμματος Περιήγησης

Χαρακτηριστικό Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Βασική Υποστήριξη (Yes) (Yes) (Yes) 3.0 (Yes) (Yes)
Χαρακτηριστικό Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Βασική Υποστήριξη (Yes) (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Δείτε επίσης

Εθελοντές και ετικέτες εγγράφου

 Συνεισφέροντες σε αυτή τη σελίδα: wheniturnintoamartian
 Τελευταία ενημέρωση από: wheniturnintoamartian,