Σύγκριση Τιμών με Boolean Τύπο στην JavaScript

Στο προηγούμενο παράδειγμα χρησιμοποιήσαμε για τη σύγκριση τον τελεστή ===. Σε αυτήν την περίπτωση η μεταβλητή μας συγκρινόταν για ισότητα με το true τόσο ως προς την τιμή, όσο και ως προς τον τύπο.

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

javascriptlet test = true; // εδώ γράφουμε είτε true, είτε false

if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}

Όμως, εάν στη μεταβλητή test μπορούν να εμφανίζονται οποιεσδήποτε τιμές, τότε όλα γίνονται πολύ πιο περίπλοκα.

Σε μια τέτοια περίπτωση, εάν στη μεταβλητή test δεν υπάρχει Boolean τιμή, τότε αυτή η τιμή θα μετατραπεί πρώτα σε Boolean και μόνο έπειτα θα συγκριθεί.

Ας υποθέσουμε, για παράδειγμα, ότι στη μεταβλητή test υπάρχει ο αριθμός 1. Σε αυτήν την περίπτωση, πρώτα θα μετατραπεί σε λογικό τύπο, δηλαδή σε true. Και έπειτα θα εκτελεστεί η σύγκριση:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // αυτό θα εκτελεστεί
} else {
  console.log('---');
}

Ωστόσο, για παράδειγμα, ο αριθμός 0 μετατρέπεται σε false. Και η συνθήκη μας, ως αποτέλεσμα, θα εμφανίσει 'λανθασμένο':

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // αυτό θα εκτελεστεί
}

Ουσιαστικά, μια τέτοια σύγκριση μπορεί ρητά να ξαναγραφτεί ως εξής:

javascriptlet test = 1;

if (Boolean(test) == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

Θυμηθείτε και γράψτε, ποιες τιμές κατά τη μετατροπή σε λογικό τύπο δίνουν false.

Задание 2

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = 1;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = 0;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = 1;
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = 1;
    
if (test != true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 6

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = '';
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 7

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 8

Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην κονσόλα:

javascriptlet test = 3 * 'a';
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}