Σύγκριση Τιμών με Boolean Τύπο στην JavaScript
Στο προηγούμενο παράδειγμα χρησιμοποιήσαμε για τη σύγκριση
τον τελεστή ===. Σε αυτήν την περίπτωση η μεταβλητή μας
συγκρινόταν για ισότητα με το true τόσο
ως προς την τιμή, όσο και ως προς τον τύπο.
Για μια τέτοια σύγκριση μπορεί να χρησιμοποιηθεί και
ο τελεστής ==. Εάν στη μεταβλητή test
υπάρχει πάντα μία από τις τιμές true
ή false, τότε τίποτα δεν αλλάζει:
let test = true; // εδώ γράφουμε είτε true, είτε false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Όμως, εάν στη μεταβλητή test μπορούν
να εμφανίζονται οποιεσδήποτε τιμές, τότε όλα γίνονται
πολύ πιο περίπλοκα.
Σε μια τέτοια περίπτωση, εάν στη μεταβλητή test
δεν υπάρχει Boolean τιμή, τότε αυτή η τιμή
θα μετατραπεί πρώτα σε Boolean και μόνο
έπειτα θα συγκριθεί.
Ας υποθέσουμε, για παράδειγμα, ότι στη μεταβλητή test
υπάρχει ο αριθμός 1. Σε αυτήν την περίπτωση, πρώτα
θα μετατραπεί σε λογικό τύπο, δηλαδή
σε true. Και έπειτα θα εκτελεστεί η σύγκριση:
let test = 1;
if (test == true) {
console.log('+++'); // αυτό θα εκτελεστεί
} else {
console.log('---');
}
Ωστόσο, για παράδειγμα, ο αριθμός 0 μετατρέπεται
σε false. Και η συνθήκη μας, ως αποτέλεσμα,
θα εμφανίσει 'λανθασμένο':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // αυτό θα εκτελεστεί
}
Ουσιαστικά, μια τέτοια σύγκριση μπορεί ρητά να ξαναγραφτεί ως εξής:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Θυμηθείτε και γράψτε, ποιες τιμές κατά
τη μετατροπή σε λογικό τύπο δίνουν
false.
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}