Η λογική είναι το θεμέλιο οποιουδήποτε προγράμματος, επομένως θα θελήσετε να κυριαρχήσετε στους λογικούς τελεστές για να δομήσετε τον κώδικά σας αποτελεσματικά.
Οι λογικοί τελεστές σάς επιτρέπουν να εκτελείτε λογικές πράξεις σε τιμές boolean. Σας επιτρέπουν να συνδυάζετε, να αναιρείτε ή να συγκρίνετε τιμές boolean και να παίρνετε λογικές αποφάσεις στον κώδικά σας με βάση το αποτέλεσμα.
Εξερευνήστε τους διάφορους λογικούς τελεστές που υποστηρίζει η JavaScript, συμπεριλαμβανομένου του τελεστή συγχώνευσης ES6 Nullish.
Ο Λογικός AND (&&) χειριστής
Ο τελεστής AND (&&) είναι ένας λογικός τελεστής που επιστρέφει αληθής αν και οι δύο τελεστές αξιολογηθούν σε αληθής και ψευδής σε διαφορετική περίπτωση.
Ακολουθεί η σύνταξη του τελεστή AND:
α && β
Ακολουθεί ένα παράδειγμα του τελεστή AND σε χρήση:
συνθ α = 5;
συνθ β = 10;
συνθ c = 15;συνθ αποτέλεσμα_1 = (α < β) && (β < γ);
κονσόλα.log (αποτέλεσμα_1); // αληθές
συνθ αποτέλεσμα_2 = (α > β) && (β < γ);
κονσόλα.log (αποτέλεσμα_2); // ψευδής
Σε αυτό το παράδειγμα,
αποτέλεσμα_1 αξιολογεί να αληθής επειδή οι δύο τελεστές στην παράσταση αποτιμώνται σε αληθής. Ωστόσο, αποτέλεσμα_2 αξιολογεί να ψευδής γιατί ο πρώτος τελεστής (α > β) επιστρέφει ψευδής.Εάν και οι δύο τελεστές δεν είναι booleans, Η JavaScript θα προσπαθήσει να τα μετατρέψει σε τιμές boolean πριν από την αξιολόγηση της έκφρασης. Για να τα μετατρέψει σε booleans, η JavaScript πρώτα αξιολογεί εάν οι τιμές είναι αληθείς ή ψευδείς.
Η JavaScript θεωρεί κάθε τιμή που δεν είναι ρητά ψευδής, μια τιμή αληθής. Όταν μετατρέπονται, αξιολογούνται σε boolean αληθής.
Ωστόσο, ορισμένες αξίες και τύπους δεδομένων σε JavaScript είναι ψευδείς, οπότε όταν η JavaScript τα μετατρέπει, αξιολογούνται σε boolean ψευδής.
Οι ψευδείς τιμές στο JavaScript είναι:
- ψευδής
- μηδενικό
- απροσδιόριστος
- NaN (Όχι αριθμός)
- 0
- BigInt (0n)
- Κενή συμβολοσειρά ("" ή '' ή ``)
- απροσδιόριστος
Όταν χρησιμοποιείτε τον τελεστή AND για να αξιολογήσετε μη δυαδικές τιμές, η παράσταση επιστρέφει αμέσως την τιμή του πρώτου τελεστή εάν ο τελεστής είναι ψευδής χωρίς να αξιολογήσει τον δεύτερο. Αυτή η συμπεριφορά είναι γνωστή ως βραχυκύκλωμα και μπορείτε να τη χρησιμοποιήσετε για να γράψετε δηλώσεις υπό όρους σε JavaScript.
Ωστόσο, εάν ο πρώτος τελεστής είναι αληθής, η έκφραση προχωρά στην αξιολόγηση του δεύτερου τελεστή. Εάν ο δεύτερος τελεστής είναι αληθής, τον επιστρέφει.
Για παράδειγμα:
συνθ α = 5;
συνθ β = 'Γειά σου';
συνθ c = μηδενικό;συνθ αποτέλεσμα_1 = a && b;
κονσόλα.log (αποτέλεσμα_1); // "Γειά σου"
συνθ αποτέλεσμα_2 = γ && b;
κονσόλα.log (αποτέλεσμα_2); // μηδενικό
Σε αυτό το παράδειγμα, αποτέλεσμα_1 αξιολογείται σε "Hello" επειδή και οι δύο τελεστές στην έκφραση είναι αληθείς. Ωστόσο, αποτέλεσμα_2 βραχυκυκλώνει και επιστρέφει μηδενικό χωρίς να αξιολογηθεί ο δεύτερος τελεστής.
Σημειώστε ότι εάν υπάρχουν περισσότεροι τελεστές, ο τελεστής AND θα συνεχίσει να τους αξιολογεί μέχρι να συναντήσει μια ψευδή τιμή. Εάν δεν συναντήσει ψευδή τιμή, επιστρέφει την τελευταία τιμή αλήθειας που συναντά.
Ο τελεστής Λογικός Ή (||).
Ο τελεστής OR (||) είναι ένας λογικός τελεστής που επιστρέφει αληθής εάν και μόνο εάν ένας ή περισσότεροι από τους τελεστές του είναι αληθής. Μόνο επιστρέφει ψευδής όταν και οι δύο τελεστές είναι ψευδής.
Ακολουθεί η σύνταξη του τελεστή OR:
α || σι
Ακολουθεί ένα παράδειγμα του τελεστή OR σε χρήση:
συνθ α = 5;
συνθ β = 10;
συνθ c = 15;συνθ αποτέλεσμα_1 = (α < β) || (β < γ);
κονσόλα.log (αποτέλεσμα_1); // αληθέςσυνθ αποτέλεσμα_2 = (α > β) || (β < γ);
κονσόλα.log (αποτέλεσμα_2); // αληθές
συνθ αποτέλεσμα_3 = (α > β) || (β > γ);
κονσόλα.log (αποτέλεσμα_3); // ψευδής
Στο παραπάνω παράδειγμα, αποτέλεσμα_1 αξιολογεί να αληθής επειδή και οι δύο τελεστές στην έκφραση αξιολογούνται σε αληθής. αποτέλεσμα_2 αξιολογεί να αληθής επειδή ο δεύτερος τελεστής αξιολογεί να αληθής. αποτέλεσμα_3 αξιολογεί να ψευδής επειδή οι δύο τελεστές στην παράσταση αποτιμώνται σε ψευδής.
Όταν χρησιμοποιείτε τον τελεστή OR σε μη δυαδικά περιβάλλοντα, η JavaScript επιχειρεί να μετατρέψει σε δυαδικές τιμές πριν από την αξιολόγηση της έκφρασης.
Όταν η έκφραση αξιολογείται, εάν ο πρώτος τελεστής είναι αληθής, ο τελεστής βραχυκυκλώνει και τον επιστρέφει. Ωστόσο, εάν είναι ψευδής, προχωρά στην αξιολόγηση του επόμενου τελεστή μέχρι να συναντήσει έναν αληθή τελεστή. Εάν δεν υπάρχουν τελεστές αληθείας στην έκφραση, επιστρέφει την τελευταία ψευδή τιμή που συναντά.
Για παράδειγμα:
συνθ α = 5;
συνθ β = 'Γειά σου';
συνθ c = μηδενικό;συνθ αποτέλεσμα_1 = α || σι;
κονσόλα.log (αποτέλεσμα_1); // 5συνθ αποτέλεσμα_2 = γ || σι;
κονσόλα.log (αποτέλεσμα_2); // "Γειά σου"
συνθ αποτέλεσμα_3 = γ || " ";
κονσόλα.log (αποτέλεσμα_3); // " "
Στο παραπάνω παράδειγμα, αποτέλεσμα_1 βραχυκυκλώνει και επιστρέφει 5 γιατί είναι μια αληθινή αξία. αποτέλεσμα_2 επιστρέφει "Hello" επειδή είναι η πρώτη τιμή αλήθειας που συναντά στην έκφραση. αποτέλεσμα_3 επιστρέφει μια κενή συμβολοσειρά επειδή είναι η τελευταία ψευδής τιμή στην παράσταση.
Ο Λογικός ΟΧΙ (!) Χειριστής
Ο λογικός τελεστής NOT (!) είναι ένας μονομερής τελεστής που επιστρέφει την αντίθετη δυαδική τιμή του τελεστή του.
Ακολουθεί η σύνταξη του τελεστή NOT:
!Χ
Οπου Χ είναι μια δυαδική ή αληθής ή ψευδής τιμή.
Ακολουθεί ένα παράδειγμα του τελεστή NOT σε χρήση:
συνθ α = 5;
συνθ β = '';
συνθ c = αληθής;συνθ αποτέλεσμα_1 = !a;
κονσόλα.log (αποτέλεσμα_1); // ψευδήςσυνθ αποτέλεσμα_2 = !b;
κονσόλα.log (αποτέλεσμα_2); // αληθές
συνθ αποτέλεσμα_3 = !c;
κονσόλα.log (αποτέλεσμα_3); // ψευδής
Στο παραπάνω παράδειγμα, ο τελεστής NOT επιστρέφει την αντίστροφη τιμή των boolean τελεστών. Όταν χρησιμοποιείτε τον τελεστή NOT σε μη δυαδικά περιβάλλοντα (αποτέλεσμα_1 & αποτέλεσμα_2), μετατρέπει τις τιμές αλήθειας στην αντίστροφη τιμή του αληθής και μετατρέπει τις ψευδείς τιμές στην αντίστροφη τιμή του ψευδής.
Ο χειριστής Nullish Coalescing (??).
Ο τελεστής nullish coalescing είναι ένας λογικός τελεστής που αξιολογεί δύο τελεστές και επιστρέφει τον πρώτο τελεστή εάν δεν είναι μηδενικό ή απροσδιόριστος. Διαφορετικά, επιστρέφει τον δεύτερο τελεστή.
Με μια ματιά, ο τελεστής μηδενικής συνένωσης μπορεί να φαίνεται πανομοιότυπος με τον λογικό τελεστή OR (||), αλλά αυτό δεν συμβαίνει. Η βασική διαφορά είναι ότι ο τελεστής OR επιστρέφει τον τελεστή της δεξιάς πλευράς εάν ο αριστερός τελεστής είναι "οποιαδήποτε" ψευδής τιμή, όχι μόνο μηδενικό ή απροσδιόριστος.
Παρέχει έναν συνοπτικό τρόπο επιλογής μιας προεπιλεγμένης τιμής όταν συναντάτε μηδενικό ή απροσδιόριστος αξίες.
Ακολουθεί η σύνταξη για τον τελεστή nullish coalescing:
Χ?? y
Ακολουθεί ένα παράδειγμα του τελεστή nullish coalescing που χρησιμοποιείται:
συνθ όνομα = μηδενικό;
συνθ defaultName = "John Doe";συνθ αποτέλεσμα_1 = όνομα; defaultName;
κονσόλα.log (αποτέλεσμα_1); // "John Doe"συνθ ηλικία = 0;
συνθ defaultAge = 25;
συνθ αποτέλεσμα_2 = ηλικία?? defaultAge;
κονσόλα.log (αποτέλεσμα_2); // 0
Στο παραπάνω παράδειγμα, αποτέλεσμα_1 επιστρέφει "John Doe" επειδή ο πρώτος τελεστής είχε μια τιμή μηδενικό. αποτέλεσμα_2 επιστρέφει 0 γιατί, αν και είναι ψευδής τιμή, δεν είναι τίποτα από τα δύο μηδενικό ούτε απροσδιόριστος.
Χρήση Λογικών τελεστών στον Κώδικά σας
Οι λογικοί τελεστές χρησιμοποιούνται συνήθως για τη σύνταξη εντολών υπό όρους, την εκχώρηση προεπιλεγμένων τιμών ή την εναλλαγή δυαδικών τιμών βάσει συνθηκών.
Χρησιμοποιώντας αυτούς τους λογικούς τελεστές, μπορείτε να γράψετε πιο συνοπτικό και εκφραστικό κώδικα που χειρίζεται διαφορετικά σενάρια με βάση την αλήθεια ή το ψεύδος των τιμών.