Ισότητα ως προς την τιμή και τον τύπο σε JavaScript
Ας υποθέσουμε ότι θέλετε να συγκρίνετε έτσι ώστε ο αριθμός σε εισαγωγικά να μην είναι ίσος με τον ίδιο αριθμό χωρίς εισαγωγικά. Με άλλα λόγια, θέλετε να συγκρίνετε έτσι ώστε η σύγκριση να γίνεται όχι μόνο ως προς την τιμή, αλλά και ως προς τον τύπο δεδομένων.
Για να το κάνετε αυτό, αντί για τον τελεστή == θα πρέπει
να χρησιμοποιήσετε τον τελεστή ===. Στο επόμενο
παράδειγμα, κατά τη σύγκριση της συμβολοσειράς '3' και
του αριθμού 3 η συνθήκη θα είναι ψευδής,
καθώς οι μεταβλητές, αν και είναι ίσες ως προς την τιμή,
δεν είναι ίσες ως προς τον τύπο:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // αυτό θα εκτελεστεί
}
Ωστόσο, κατά τη σύγκριση δύο συμβολοσειρών '3'
η συνθήκη θα είναι αληθής:
if ('3' === '3') {
console.log('+++'); // αυτό θα εκτελεστεί
} else {
console.log('---');
}
Το ίδιο ισχύει και για τη σύγκριση αριθμών:
if (3 === 3) {
console.log('+++'); // αυτό θα εκτελεστεί
} else {
console.log('---');
}
Η διαφορά μεταξύ του τελεστή == και του τελεστή
=== εκδηλώνεται ακριβώς όταν
οι τιμές είναι ίδιες, αλλά ο τύπος δεδομένων είναι διαφορετικός.
Σε όλες τις άλλες περιπτώσεις, αυτοί οι τελεστές λειτουργούν
με τον ίδιο τρόπο. Για παράδειγμα, κατά τη σύγκριση διαφορετικών
αριθμών, φυσικά θα εμφανιστεί '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // αυτό θα εκτελεστεί
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}