JavaScript Triple Equals Sign VS Double Equals Sign - Σύγκριση Οι χειριστές εξηγούνται με παραδείγματα

Μπορεί να έχετε δει διπλά και τριπλά ίσα σημάδια στο JavaScript. Τι σημαίνουν όμως;

Με λίγα λόγια: ==μετατρέπει εγγενώς τον τύπο και ===δεν μετατρέπει τον τύπο.

Το Double Equals ( ==) ελέγχει μόνο για ισότητα αξίας. Είναι εγγενώς τύπου εξαναγκασμού. Αυτό σημαίνει ότι πριν από τον έλεγχο των τιμών, μετατρέπει τους τύπους των μεταβλητών ώστε να ταιριάζουν μεταξύ τους.

Από την άλλη πλευρά, το Triple Equals ( ===) δεν εκτελεί εξαναγκασμό τύπου. Θα επαληθεύσει εάν οι μεταβλητές που συγκρίνονται έχουν και την ίδια τιμή ΚΑΙ τον ίδιο τύπο.

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

Παράδειγμα 1:

const foo = "test" const bar = "test" console.log(foo == bar) //true console.log(foo === bar) //true 

Η τιμή και ο τύπος και των δύο fooκαι barείναι ίδιο. Επομένως το αποτέλεσμα είναι και trueγια τα δύο.

Παράδειγμα 2: ‌

const number = 1234 const stringNumber = '1234' console.log(number == stringNumber) //true console.log(number === stringNumber) //false 

Η αξία numberκαι stringNumberφαίνεται παρόμοια εδώ. Ωστόσο, ο τύπος numberείναι Numberκαι ο τύπος stringNumberείναι string. Παρόλο που οι τιμές είναι ίδιες, ο τύπος δεν είναι ίδιος. Ως εκ τούτου, ένας ==έλεγχος επιστρέφει true, αλλά όταν ελέγχεται για τιμή και τύπο, η τιμή είναι false.

Παράδειγμα 3:

console.log(0 == false) //true console.log(0 === false) //false 

Αιτία: ίδια τιμή, διαφορετικός τύπος. Τύπος εξαναγκασμού

Αυτή είναι μια ενδιαφέρουσα περίπτωση. Η τιμή 0όταν είναι επιλεγμένη falseείναι ίδια. Είναι τόσο επειδή 0και falseέχουν την ίδια τιμή για το JavaScript, αλλά όταν ελέγχεται για τον τύπο και την τιμή, η τιμή είναι ψευδής επειδή 0είναι numberκαι falseείναι boolean.

Παράδειγμα 4:

const str = "" console.log(str == false) //true console.log(str === false) //false

Η τιμή της κενής συμβολοσειράς και falseείναι ίδια στο JavaScript. Ως εκ τούτου, ==επιστρέφει αλήθεια. Ωστόσο, ο τύπος είναι διαφορετικός και ως εκ τούτου ===επιστρέφει ψευδής.

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

Σε περίπτωση αμφιβολίας, χρησιμοποιήστε ===. Αυτό θα σας σώσει από έναν τόνο πιθανών σφαλμάτων.

Εάν υποστηρίζετε μια περίπτωση χρήσης όπου μπορείτε να είστε λίγο επιεικείς σχετικά με τον τύπο των εισερχόμενων δεδομένων, τότε χρησιμοποιήστε το ==. Για παράδειγμα, εάν ένα API αποδέχεται τόσο "true"και trueαπό τον πελάτη, χρησιμοποιήστε το ==. Εν ολίγοις, μην το χρησιμοποιείτε ==εκτός εάν έχετε μια ισχυρή θήκη χρήσης για αυτό.

Ακολουθεί ένας εύχρηστος πίνακας αλήθειας JavaScript για την αναφορά σας και για να σας δείξει πόσο περίπλοκη είναι η ισότητα στο JavaScript

Αν σας άρεσε αυτό το άρθρο, φροντίστε να με ακολουθήσετε στο twitter για ενημερώσεις.

Ε: Πόσος χώρος θα ελευθερωθεί μόλις αποχωρήσει η Βρετανία από την ΕΕ;

.

.

.

Α: 1 GB # DevJoke #NotAJoke

- Shruti Kapoor (@ shrutikapoor08) 4 Οκτωβρίου 2019