Τι είναι ο τριαδικός τελεστής;

Ο τριαδικός τελεστής χρησιμοποιείται για τον έλεγχο των συνθηκών στον κώδικά σας αντί για τη χρήση μιας δήλωσης if…else. Ονομάζεται επίσης τελεστής υπό όρους και κάνει τον κώδικα πολύ πιο σύντομο και πιο ευανάγνωστο (τις περισσότερες φορές).

Σύνταξη

Ας ρίξουμε μια ματιά στη σύνταξη ενός τριαδικού τελεστή:

condition ? trueExpression : falseExpression

Αναλύοντας τη σύνταξη

condition — η συνθήκη που αξιολογείτε. Π.χ.: Είναι ηλικία › 5.

trueExpression : αυτό θα πρέπει να συμβεί αν το condition είναι true.

falseExpression: αυτό θα πρέπει να συμβεί αν το condition είναι false.

Παράδειγμα

Παρακάτω είναι ένα παράδειγμα που χρησιμοποιεί μια δήλωση if…else που ελέγχει εάν το αυτοκίνητο πρέπει να κινείται με βάση το χρώμα του φαναριού.

let color = ‘red’; // color of the traffic light
let carMovement;

if (color === 'red') {
  carMovement = 'stop';
} else {
  carMovement = 'go';
}

console.log(carMovement); //stop

Αυτός είναι ο ίδιος κωδικός που χρησιμοποιεί έναν τριαδικό τελεστή:

let color = 'red'; // color of the traffic light
let carMovement = color === red ? 'stop' : 'go';

console.log(carMovement); //stop

Ένθετοι τριμερείς τελεστές

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

let num = 2;
let result = num >= 0 ? num === 0 ? 'zero' : 'positive' : 'negative';

console.log(result); //positive

Δεν ήταν πολύ εύκολο να διαβαστεί. Ίσως, ίσως είναι λίγο πιο εύκολο να γίνει κατανοητό αν προσθέσουμε παρένθεση:

let num = 2;
let result = (num >= 0) ? (num === 0 ? "zero" : "positive") : "negative";

console.log(result); //positive

Ωστόσο, εξακολουθεί να μην είναι ευανάγνωστο. Που με φέρνει στο επόμενο σημείο μου…

Πότε πρέπει να χρησιμοποιείτε τριμερείς τελεστές;

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

Ένας εμπειρικός κανόνας θα ήταν να σκεφτείτε εάν κάποιος άλλος στα επόμενα 2 χρόνια θα μπορεί να διαβάσει και να κατανοήσει τον κώδικά σας με ευκολία. Εάν η απάντηση είναι όχι — χρησιμοποιήστε μια πρόταση if…else.

Συμβουλή: Εάν χρησιμοποιείτε ESlint, απαγορεύεται εντελώς η χρήση ένθετων τριαδικών τελεστών!

Συμπέρασμα

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