JS Booleans

29/07/2019

Bài sau » « Bài trước

Trong lập trình, Bạn sẽ cần một kiểu dữ liệu chỉ chứa 2 giá trị như:

- YES/ NO

- ON / OFF

- TRUE / FALSE

Vì vậy, Javascript sinh ra kiểu dữ liệu Boolean. Javascript Boolean có 2 giá trị: truefalse.

Boolean() function

Bạn có thể sử dụng hàm Boolean() để tìm kết quả của một biểu thức (hoặc một biến) là true hay không?

Boolean(10 > 9) // Kết quả là: true

Hoặc :

(10 > 9) // Kết quả là: true 10 > 9 // Kết quả là: true

So sánh và điều kiện

Bảng ví dụ:

Toán tửMô tảExample
==So sánh bằngif (day == "Monday")
>Lớn hơnif (salary > 9000)
<Nhỏ hơnif (age < 18)

Giá trị Boolean của một biểu thức là cơ sở cho tất cả các so sánh và điều kiện trong JavaScript. Phần này sẽ được nói rõ hơn ở các bài học sau.

Mọi thứ có giá trị luôn TRUE

var b1 = Boolean(100); // 100 là true var b2 = Boolean(3.14); // 3.14 là true var b3 = Boolean(-15); // -15 là true var b4 = Boolean("Hello"); // Một string (không phải chuỗi rỗng) là true var b5 = Boolean('false'); // Kể cả string 'false' cũng là true var b6 = Boolean(1 + 7 + 3.14); // Biểu thức (không phải số 0) là true

Mọi thứ không có giá trị là FALSE

Boolean của số 0false:

var x = 0; Boolean(x); // Kết quả: false var x = -0; Boolean(x); // Kết quả: false

Boolean của chuỗi rỗngfalse:

var x = ""; Boolean(x); // Kết quả: false

Boolean của undefinedfalse:

var x; Boolean(x); // Kết quả: false

Boolean của nullfalse:

var x = null; Boolean(x); // Kết quả: false

Boolean của falsefalse:

var x = false; Boolean(x); // Kết quả: false

Boolean của NaNfalse:

var x = 10 / "H"; Boolean(x); // Kết quả: false

Boolean có thể là Object

Thông thường JavaScript booleans là các giá trị nguyên thủy được tạo từ chữ:

var x = false;

Nhưng booleans cũng có thể được định nghĩa như là object với từ khóa new:

var y = new Boolean(false);

var x = false; var y = new Boolean(false); // typeof x là boolean // typeof y là object

Không nên tạo Boolean là object. Nó làm chậm tốc độ thực thi và cho ra nhiều kết quả không mong muốn :

Khi sử dụng toán tử ==, thì kết quả là bằng nhau:

var x = false; var y = new Boolean(false); // (x == y) là true vì x và y bằng nhau về giá trị

Khi sử dụng toán tử ===, thì kết quả là không bằng nhau vì kiểu dữ liệu nó khác nhau :

var x = false; var y = new Boolean(false); // (x === y) là false vì x và y bằng nhau về giá trị, nhưng khác kiểu dữ liệu

Hoặc tệ hơn, không thể so sánh 2 object:

var x = new Boolean(false); var y = new Boolean(false); // (x == y) là false vì object không thể so sánh

Bài sau » « Bài trước
Back to top