Λογισμικοί οπτικοί ECMAScript
- Προηγούμενη σελίδα Δισδιάστατοι οπτικοποιητές
- Επόμενη σελίδα Αριθμητικοί οπτικοποιητές
Οι λογισμικοί οπτικοί είναι πολύ σημαντικοί, καθώς επιτρέπουν την καλή λειτουργία της γλώσσας προγραμματισμού.
Οι λογισμικοί οπτικοί έχουν τρία είδη: NOT, AND και OR.
Λειτουργία ToBoolean
Πριν από την κατανόηση των διαφόρων λογισμικών οπτικών, ας μάθουμε πρώτα την λειτουργία ToBoolean που περιγράφεται από το πρότυπο ECMAScript-262 v5.
Η αβστική λειτουργία ToBoolean μετατρέπει τον παράγοντα του σύμφωνα με τις規γmulές της παρακάτω τάβλας σε λογισμικό αξία:
Τύπος παραγόντος | Αποτέλεσμα |
---|---|
Μη καθορισμένο | false |
Κενό | false |
Λογισμικό | Το αποτέλεσμα είναι ίσο με τον εισερχόμενο παράγοντα (χωρίς μετατροπή) |
Αριθμός | Αν ο παράγοντας είναι +0, -0 ή NaN, τότε το αποτέλεσμα είναι ψευδές; σε άλλες περιπτώσεις είναι αληθές. |
Αλφαβητική αλυσίδα | Αν ο παράγοντας είναι κενή αλφαβητική αλυσίδα, τότε το αποτέλεσμα είναι ψευδές; σε άλλες περιπτώσεις είναι αληθές. |
Ον | true |
Λογισμικό NOT οπτικός
Στο ECMAScript, ο λογικός οπέρας NOT είναι ο ίδιος με αυτόν του C και Java, και εκφράζεται με την εικόνα (!).
Διαφορετικά από τους οπεράτες OR και AND,Ο λογικός οπέρας NOT επιστρέφει πάντα Boolean τιμή.
Το comportment του λογικού οπέρα NOT είναι το εξής:
- Αν ο όρος είναι αντικείμενο, θα επιστρέψει false
- Αν ο όρος είναι το αριθμητικό 0, θα επιστρέψει true
- Αν ο όρος είναι οποιαδήποτε αριθμητική τιμή εκτός από το 0, θα επιστρέψει false
- Αν ο όρος είναι null, θα επιστρέψει true
- Αν ο όρος είναι NaN, θα επιστρέψει true
- Αν ο όρος είναι undefined, θα προκύψει σφάλμα
Γενικά, ο οπέρας χρησιμοποιείται για να ελέγχει το κύκλο:
var bFound = false; var i = 0; while (!bFound) { if (aValue[i] == vSearchValues) { bFound = true; } else { i++; } }
Σε αυτό το παράδειγμα, η Boolean μεταβλητή (bFound) χρησιμοποιείται για να καταγράψει αν η αναζήτηση ήταν επιτυχής. Όταν το στοιχείο δεδομένων στο πρόβλημα βρεθεί, η bFound θα ρυθμιστεί σε true, η !bFound θα ισούται με false, κάτι που σημαίνει ότι η εκτέλεση θα βγει από το while κύκλο.
Όταν ελέγχεται η Boolean τιμή μιας μεταβλητής ECMAScript, μπορεί να χρησιμοποιηθεί ο λογικός οπέρας NOT. Για να γίνει αυτό, χρειάζεται να χρησιμοποιηθούν δύο NOT οπέρες σε μια γραμμή κώδικα. Ο πρώτος NOT οπέρας επιστρέφει Boolean τιμή. Ο δεύτερος NOT οπέρας θα πάρει την αρνητική τιμή της Boolean τιμής, δίνοντας την πραγματική Boolean τιμή της μεταβλητής.
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var οΌντικο = new Object; document.write("η τιμή της λογικής του bFalse είναι " + (!!bFalse)); document.write("η τιμή της λογικής του sRed είναι " + (!!sRed)); document.write("η τιμή της λογικής του iZero είναι " + (!!iZero)); document.write("η τιμή της λογικής του iThreeFourFive είναι " + (!!iThreeFourFive)); document.write("οΌντικο της λογικής τιμής είναι " + (!!οΌντικο));
Αποτέλεσμα:
Η λογική τιμή του bFalse είναι false Η λογική τιμή του sRed είναι true Η λογική τιμή του iZero είναι false Η λογική τιμή του iThreeFourFive είναι true Η λογική τιμή του oObject είναι true
Ο λογιστής της λογικής συμπλοκής AND
Στο ECMAScript, ο λογιστής της λογικής συμπλοκής AND χρησιμοποιείται με διπλή καινάρη (&&):
Παράδειγμα:
var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse;
Η αληθινή τάβληση της λογικής συμπλοκής AND περιγράφει τη συμπεριφορά του υπολογιστή:
Οπτικοποιητής 1 | Οπτικοποιητής 2 | Αποτέλεσμα |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
Οι όροι της λογικής συμπλοκής AND μπορούν να είναι οποιουδήποτε τύπου, όχι μόνο Boolean τιμές.
Αν ένας όρος δεν είναι πρωτότυπος Boolean τύπος, η λογική συμπλοκή AND δεν είναι απαραίτητα που θα επιστρέψει Boolean τιμή:
- Αν ένας όρος είναι αντικείμενο και ο άλλος είναι Boolean τιμή, επιστρέφει το αντικείμενο.
- Αν και οι δύο όροι είναι αντικείμενα, επιστρέφει το δεύτερο αντικείμενο.
- Αν ένας όρος είναι null, επιστρέφει null.
- Αν ένας όρος είναι NaN, επιστρέφει NaN.
- Αν η τιμή του οπτικοποιητή είναι undefined, θα προκύψει σφάλμα.
Όπως η λογική συμπλοκή AND στο Java, η λογική συμπλοκή AND στο ECMAScript είναι μια απλή συμπλοκή, δηλαδή αν ο πρώτος όρος καθορίζει το αποτέλεσμα, ο δεύτερος όρος δεν θα υπολογιστεί. Για τη λογική συμπλοκή AND, αν ο πρώτος όρος είναι false, τότε ο αποτέλεσμα δεν μπορεί να είναι true ανεξάρτητα από την τιμή του δεύτερου όρου.
Σκεφτείτε το παρακάτω παράδειγμα:
var bTrue = true; var bResult = (bTrue && bUnknown); //σφάλμα alert(bResult); //αυτή η γραμμή δεν θα εκτελεστεί
Αυτό το κώδικας θα προκαλέσει σφάλμα κατά τη διάρκεια της λογικής συμπλοκής AND, επειδή η μεταβλητή bUnknown είναι undefined. Η τιμή της μεταβλητής bTrue είναι true, επειδή η λογική συμπλοκή AND θα συνεχίσει να υπολογίζει τη μεταβλητή bUnknown. Αυτό θα προκαλέσει σφάλμα, επειδή η τιμή της bUnknown είναι undefined και δεν μπορεί να χρησιμοποιηθεί στη λογική συμπλοκή AND.
Αν αλλάξετε αυτό το παράδειγμα, θέτοντας τον πρώτο αριθμό σε false, τότε δεν θα συμβεί σφάλμα:
var bFalse = false; var bResult = (bFalse && bUnknown); alert(bResult); //εκτυπώστε το "false"
Σε αυτό το κώδικα, το σενάριο θα εκτυπώσει την τιμή που επιστρέφει η λογική συμπλοκή AND, δηλαδή η αλφαριθμητική "false". Ακόμα και αν η τιμή της μεταβλητής bUnknown είναι undefined, δεν θα υπολογιστεί, επειδή η τιμή του πρώτου όρου είναι false.
Συμβουλή:Στη χρήση του λογισμικού AND οπτικοποιητή, πρέπει να θυμάστε τη χαρακτηριστική του απλή υπολογιστική λειτουργία.
Λογισμικός OR οπτικοποιητής
Ο λογισμικός OR οπτικοποιητής του ECMAScript είναι ο ίδιος με τον λογισμικό OR οπτικοποιητή του Java, και δείχνονται με διπλή τάση (||):
var bTrue = true; var bFalse = false; var bResult = bTrue || bFalse;
Η παρακάτω πίνακας αληθείας περιγράφει τη συμπεριφορά του λογισμικού OR οπτικοποιητή:
Οπτικοποιητής 1 | Οπτικοποιητής 2 | Αποτέλεσμα |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
Παρόμοια με τον λογισμικό AND οπτικοποιητή, αν η τιμή του οπτικοποιητή δεν είναι Boolean, η λογική OR οπτικοποιητής δεν θα επιστρέψει απαραίτητα Boolean τιμή:
- Αν η τιμή του οπτικοποιητή είναι αντικείμενο και οι τιμές των οπτικοποιητών στα αριστερά είναι false, θα επιστρέψει το αντικείμενο.
- Αν και οι δύο τιμές των οπτικοποιητών είναι αντικείμενα, θα επιστρέψει το πρώτο αντικείμενο.
- Αν η τελευταία τιμή του οπτικοποιητή είναι null και οι άλλες τιμές των οπτικοποιητών είναι false, θα επιστρέψει null.
- Αν η τελευταία τιμή του οπτικοποιητή είναι NaN και οι άλλες τιμές των οπτικοποιητών είναι false, θα επιστρέψει NaN.
- Αν η τιμή του οπτικοποιητή είναι undefined, θα προκύψει σφάλμα.
Παρόμοια με τον λογισμικό AND οπτικοποιητή, η λογική OR οπτικοποιητής είναι μια απλή λειτουργία. Για τον λογισμικό OR οπτικοποιητή, αν η πρώτη τιμή του οπτικοποιητή είναι true, δεν θα υπολογιστεί η δεύτερη τιμή του οπτικοποιητή.
Παράδειγμα:
var bTrue = true; var bResult = (bTrue || bUnknown); alert(bResult); // Έξοδος "true"
Παρόμοια με τον προηγούμενο παράδειγμα, η μεταβλητή bUnknown δεν είναι ορισμένη. Ωστόσο, λόγω της τιμής true της μεταβλητής bTrue, η bUnknown δεν θα υπολογιστεί, οπότε η έξοδος είναι "true".
Αν αλλάξετε το bTrue σε false, θα προκύψει σφάλμα:
var bFalse = false; var bResult = (bFalse || bUnknown); // Αναπτύχθηκε σφάλμα alert(bResult); // Δεν θα εκτελεστεί αυτή η γραμμή
- Προηγούμενη σελίδα Δισδιάστατοι οπτικοποιητές
- Επόμενη σελίδα Αριθμητικοί οπτικοποιητές