Kiểu dữ liệu Boolean trong JavaScript
Trong rất nhiều trường hợp, trong lập trình, bạn sẽ cần một kiểu dữ liệu chỉ có thể có một trong hai giá trị, như:
- YES / NO
- ON / OFF
- TRUE / FALSE
Vì lý do này, JavaScript có kiểu dữ liệu Boolean. Giá trị chỉ true hoặc là false.
1. Giá trị boolean của một biểu thức
Giá trị Boolean của một biểu thức là cơ sở cho tất cả các phép so sánh và điều kiện của JavaScript.
Toán tử | Mô tả | Ví dụ |
== | Bằng | if (day == “Monday”) |
> | Lớn hơn | if (salary > 9000) |
< | Nhỏ hơn | if (age < 18) |
● Hàm Boolean()
– Bạn có thể sử dụng hàm Boolean() để kiểm tra xem biểu thức (hoặc một biến) có phải là true hay không:
Ví dụ:
[code language=”javascript”]function myFunction() {document.getElementById("demo").innerHTML =
"Kết quả là: " + Boolean(10 > 9);
}[/code] Try it »
– Hoặc chỉ cần viết đơn giản thế này:
Ví dụ:
[code language=”javascript”]function myFunction() {document.getElementById("demo").innerHTML = (10 > 9);
}
// Hoặc:
function myFunction() {
document.getElementById("demo").innerHTML = 10 > 9;
}[/code]
2. Mọi thứ mà “có giá trị” đều là True
Ví dụ:
[code language=”javascript”]var b1 = Boolean(100); // truevar b2 = Boolean(3.14); // true
var b3 = Boolean(-15); // true
var b4 = Boolean("Hello"); // true
var b5 = Boolean(‘false’); // true
var b6 = Boolean(1 + 7 + 3.14); // true[/code] Try it »
3. Mọi thứ “không có giá trị” đều False
Ví dụ:
[code language=”javascript”]var b1 = Boolean(0); // falsevar b2 = Boolean(-0); // false
var b3 = Boolean(""); // false
// x lúc này là "undefined"
var x;
var b4 = Boolean(x); // false
var y = null;
var b5 = Boolean(y); // false
// z lúc này là "NaN"
var z = 10 / "H";
var b6 = Boolean(z); // false
var m = false;
var b7 = Boolean(m); // false[/code]
Try it »
4. Boolean có thể là Object
– Thông thường các giá trị booleans JavaScript là các giá trị nguyên thủy và được tạo từ các literal:
var x = false;
– Tuy nhiên, các giá trị booleans cũng có thể được định nghĩa là các đối tượng (objects) với từ khóa new:
var y = new Boolean(false);
Ví dụ:
[code language=”javascript”]var x = false;var y = new Boolean(false);
// typeof x sẽ trả về "boolean"
// typeof y sẽ trả về "object"[/code]
Try it »
– Đừng bao giờ tạo Boolean objects. Nó làm chậm tốc độ thực thi.
– Hơn nữa, từ khóa new làm phức tạp code. Điều này có thể tạo ra một số kết quả không mong muốn như dưới đây:
● Khi sử dụng toán tử ==, các giá trị booleans bằng nhau sẽ bằng nhau (equal):
Ví dụ:
[code language=”javascript”]var x = false;var y = new Boolean(false);
// (x == y) là "true", vì x và y có giá trị bằng nhau.[/code]
● Khi sử dụng toán tử ===, các giá trị booleans bằng nhau cũng không bằng nhau, vì toán tử === mong đợi sự bằng nhau trong cả kiểu (type) và giá trị (value).
Ví dụ:
[code language=”javascript”]var x = false;var y = new Boolean(false);
// (x === y) là "false", vì x và y là khác kiểu (boolean vs object)[/code] Try it »
● Hay thậm chí các đối tượng cũng không thể so sánh được.
Ví dụ:
[code language=”javascript”]var x = new Boolean(false);var y = new Boolean(false);
// (x == y) là "false", vì x và y là các đối tượng khác nhau.
// (x === y) là "false", vì x và y là các đối tượng khác nhau.[/code]
Try it »
Lưu ý sự khác biệt giữa (x == y) và (x === y).
So sánh hai đối tượng JavaScript sẽ luôn trả về “false”.