So sánh giá trị với kiểu boolean trong JavaScript
Trong ví dụ trước, chúng ta đã sử dụng toán tử
=== để so sánh. Trong trường hợp này, biến của chúng ta
được so sánh để xem có bằng true hay không
về cả giá trị và kiểu dữ liệu.
Đối với phép so sánh như vậy, chúng ta cũng có thể sử dụng
toán tử ==. Nếu trong biến test
luôn là một trong các giá trị true
hoặc false, thì sẽ không có gì thay đổi:
let test = true; // Ở đây chúng ta viết true hoặc false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Nhưng nếu biến test có thể
nhận bất kỳ giá trị nào, thì mọi thứ trở nên
phức tạp hơn nhiều.
Trong trường hợp đó, nếu trong biến test
không phải là giá trị boolean, thì giá trị đó
trước tiên sẽ được chuyển đổi sang boolean và chỉ
sau đó mới được so sánh.
Ví dụ, giả sử trong biến test
là số 1. Trong trường hợp này, nó sẽ được
chuyển đổi sang kiểu logic trước, tức là
thành true. Và sau đó phép so sánh sẽ được thực hiện:
let test = 1;
if (test == true) {
console.log('+++'); // Đoạn này sẽ chạy
} else {
console.log('---');
}
Nhưng ví dụ, số 0 sẽ được chuyển đổi
thành false. Và điều kiện của chúng ta cuối cùng
sẽ in ra 'không đúng':
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // Đoạn này sẽ chạy
}
Trên thực tế, phép so sánh như vậy có thể được viết lại rõ ràng dưới dạng sau:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
Hãy nhớ lại và viết ra, những giá trị nào
khi chuyển đổi sang kiểu logic sẽ cho ra
false.
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
Không chạy code, hãy xác định xem cái gì sẽ được in ra console:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}