Ο Τερματικός Διαχειριστής JavaScript ως Συντόμευση για τις Ενδείξεις If / Else

Ο υπό όρους τετραγωνικός χειριστής στο JavaScript εκχωρεί μια τιμή σε μια μεταβλητή που βασίζεται σε κάποια συνθήκη και είναι ο μοναδικός χειριστής JavaScript που παίρνει τρεις τελεστές.

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

αν (προϋπόθεση)
αποτέλεσμα = 'κάτι';
αλλού
αποτέλεσμα = 'somethingelse';

Ο τριμερής χειριστής συντομεύει αυτή τη δήλωση if / else σε μία μόνο δήλωση:

αποτέλεσμα = (όρος); 'κάτι': 'somethingelse'; 

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

  • Πρώτα, δημιουργήστε τη μεταβλητή στην οποία θέλετε να αντιστοιχίσετε μια τιμή, στην περίπτωση αυτή, αποτέλεσμα. Η μεταβλητή αποτέλεσμα θα έχει διαφορετική τιμή ανάλογα με την κατάσταση.
  • Σημειώστε ότι στη δεξιά πλευρά (δηλ. Τον ίδιο τον χειριστή), το κατάσταση είναι η πρώτη.
  • ο κατάσταση ακολουθεί πάντοτε ένα ερωτηματικό (?), το οποίο μπορεί βασικά να διαβαστεί ως "αυτό ήταν αλήθεια";
  • instagram viewer
  • Τα δυο πιθανά αποτελέσματα έρχονται τελευταία, χωρίζονται από ένα παχύ έντερο (:).

Αυτή η χρήση του τριμερής φορέας εκμετάλλευσης είναι διαθέσιμη μόνο όταν το πρωτότυπο αν η δήλωση ακολουθεί τη μορφή που φαίνεται παραπάνω - αλλά αυτό είναι ένα αρκετά συνηθισμένο σενάριο και η χρήση του τριμερούς φορέα μπορεί να είναι πολύ πιο αποδοτική.

Παράδειγμα τριμερούς φορέα

Ας δούμε ένα πραγματικό παράδειγμα.

Ίσως πρέπει να καθορίσετε ποια παιδιά είναι η σωστή ηλικία για να παρακολουθήσουν το νηπιαγωγείο. Μπορεί να έχετε μια υπό όρους δήλωση όπως αυτή:

var age = 7;
var kindergarten_eligible;
αν (ηλικία> 5 ετών) {
kindergarten_eligible = "Αρκετά αρκετά";
}
αλλού {
kindergarten_eligible = "Πάρα πολύ νέος";
}

Χρησιμοποιώντας τον τριαδικό χειριστή, θα μπορούσατε να συντομεύσετε την έκφραση σε:

var kindergarten_eligible = (ηλικία <5); "Πάρα πολύ νέος": "Αρκετά αρκετά"?

Αυτό το παράδειγμα θα επιστρέψει βέβαια "αρκετά μεγάλα".

Πολλαπλές αξιολογήσεις

Μπορείτε επίσης να συμπεριλάβετε πολλές αξιολογήσεις:

var var = 7, var socially_ready = true;
var kindergarten_eligible = (ηλικία <5); "Πάρα πολύ νέος": socially_ready
"Αρκετά μεγάλα αλλά όχι ακόμα έτοιμα" "Παλιά και κοινωνικά αρκετά ώριμα"
console.log (νηπιαγωγείο_επιτήρησης); // αρχεία καταγραφής "Παλιά και κοινωνικά αρκετά ώριμα"

Πολλαπλές λειτουργίες

Ο τριμερής χειριστής επιτρέπει επίσης τη συμπερίληψη πολλαπλών λειτουργιών για κάθε έκφραση, χωρισμένες με κόμμα:

var age = 7, socially_ready = true;
ηλικία> 5; (
("Είστε αρκετά μεγάλοι"),
location.assign ("continue.html")
): (
socially_ready = false,
alert ("Συγνώμη, αλλά δεν είστε ακόμα έτοιμος.")
);

Τερματικές επιπτώσεις του χειριστή

Οι τριετείς φορείς εκμετάλλευσης αποφεύγουν με άλλον τρόπο λεπτομερείς πληροφορίες κώδικας, έτσι από τη μία πλευρά, φαίνονται επιθυμητά. Από την άλλη πλευρά, μπορούν να διακυβεύσουν την αναγνωσιμότητα - προφανώς, "αν το ELSE" είναι πιο εύκολα κατανοητό από ένα κρυπτικό "?".

Όταν χρησιμοποιείτε έναν τριμελή φορέα - ή οποιαδήποτε συντομογραφία - εξετάστε ποιος θα διαβάζει τον κωδικό σας. Εάν οι λιγότερο έμπειροι προγραμματιστές ίσως χρειαστεί να καταλάβουν τη λογική του προγράμματος, ίσως πρέπει να αποφευχθεί η χρήση του τριμερούς φορέα εκμετάλλευσης. Αυτό ισχύει ιδιαίτερα εάν η κατάστασή σας και οι αξιολογήσεις σας είναι αρκετά σύνθετες ώστε να χρειαστεί να φωλιάσετε ή να αλυστήσετε τον τριμελή φορέα σας. Στην πραγματικότητα, αυτά τα είδη ένθετων χειριστών μπορούν να επηρεάσουν όχι μόνο την αναγνωσιμότητα, αλλά και το σφάλμα.

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