JavaScript - Đối tượng Boolean

Xin chào, các bạn học lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới kỳ diệu của các giá trị Boolean trong JavaScript. Như một người giáo viên khoa học máy tính gần gũi, tôi rất vui mừng được hướng dẫn các bạn qua khái niệm cơ bản này, là nền tảng của quyết định trong lập trình. Hãy đội mũ suy nghĩ ảo của bạn và cùng nhau bắt đầu cuộc phiêu lưu Boolean này nhé!

JavaScript - Boolean

Boolean là gì?

Trước khi chúng ta đi vào chi tiết, hãy bắt đầu từ những điều cơ bản. Boolean là một loại dữ liệu chỉ có hai giá trị: true hoặc false. Nó giống như một công tắc đèn đơn giản - nó hoặc bật hoặc tắt, không có trạng thái giữa. Sự đơn giản này làm cho Boolean vô cùng mạnh mẽ trong lập trình, đặc biệt là khi chúng ta cần ra quyết định trong mã của mình.

Một chút lịch sử

Từ "Boolean" xuất phát từ George Boole, một nhà toán học thế kỷ 19 đã phát triển algebra Boolean. Lần sau khi bạn đi dự tiệc và ai đó hỏi về nguồn gốc của Boolean, bạn sẽ có một điều thú vị để chia sẻ!

Thuộc tính của Boolean

Bây giờ, hãy nhìn vào các thuộc tính của đối tượng Boolean trong JavaScript. Ngạc nhiên thay, chỉ có một thuộc tính để nhớ:

Thuộc tính Mô tả
prototype Cho phép bạn thêm các thuộc tính và phương thức vào đối tượng Boolean

Mặc dù điều này có thể看起来 ít ỏi, nhưng đừng lo lắng - điều kỳ diệu thực sự của Boolean nằm ở cách chúng ta sử dụng chúng, không phải ở thuộc tính của chúng.

Phương thức của Boolean

Boolean có một vài phương thức hữu ích. Hãy cùng xem qua:

Phương thức Mô tả
toString() Trả về chuỗi "true" hoặc "false" tùy thuộc vào giá trị boolean
valueOf() Trả về giá trị nguyên thủy của đối tượng Boolean

Những phương thức này có thể看起来 đơn giản, nhưng chúng có thể rất hữu ích trong một số tình huống. Hãy cùng xem chúng trong hành động!

Ví dụ: Sử dụng các phương thức Boolean

let isAwesome = new Boolean(true);

console.log(isAwesome.toString()); // Xuất: "true"
console.log(isAwesome.valueOf());  // Xuất: true

Trong ví dụ này, chúng ta tạo một đối tượng Boolean isAwesome với giá trị true. Phương thức toString() chuyển nó thành chuỗi "true", trong khi valueOf() trả về giá trị boolean true.

Ví dụ: Tạo một đối tượng Boolean

Mặc dù có thể tạo các đối tượng Boolean bằng từ khóa new, nhưng thường không khuyến khích. Hãy xem tại sao:

let boolObject = new Boolean(false);
let boolPrimitive = false;

console.log(typeof boolObject);    // Xuất: "object"
console.log(typeof boolPrimitive); // Xuất: "boolean"

if (boolObject) {
console.log("Điều này sẽ được in!");
}

if (boolPrimitive) {
console.log("Điều này sẽ không được in.");
}

Ngạc nhiên! Dù chúng ta đã tạo boolObject với giá trị false, câu lệnh if vẫn coi nó là true. Điều này là vì boolObject là một đối tượng, và tất cả các đối tượng đều là truthy trong JavaScript. Đây là lý do chúng ta thường tránh sử dụng constructor Boolean và sử dụng các giá trị boolean nguyên thủy.

Hàm Boolean() trong JavaScript

Thay vì sử dụng constructor new Boolean(), chúng ta có thể sử dụng hàm Boolean() để chuyển đổi các loại khác thành giá trị boolean. Điều này phổ biến và hữu ích hơn trong thực tế.

console.log(Boolean(100));       // Xuất: true
console.log(Boolean(0));         // Xuất: false
console.log(Boolean("Hello"));   // Xuất: true
console.log(Boolean(""));        // Xuất: false
console.log(Boolean(null));      // Xuất: false
console.log(Boolean(undefined)); // Xuất: false

Như bạn có thể thấy, hàm Boolean() chuyển đổi các giá trị thành true hoặc false dựa trên "truthiness" hoặc "falsiness" của chúng.

Giá trị falsy trong JavaScript

Nói về "falsiness", hãy cùng thảo luận về các giá trị falsy trong JavaScript. Đây là các giá trị được coi là false khi chuyển đổi thành boolean:

Giá trị falsy Mô tả
false Từ khóa false
0 Con số không
"" or '' Chuỗi trống
null Từ khóa đặc biệt biểu thị giá trị null
undefined Tính chất顶层 không được xác định
NaN "Not a Number"

Mọi thứ khác đều được coi là truthy. Hãy xem một số ví dụ:

if (false) console.log("Điều này sẽ không được in");
if (0) console.log("Điều này sẽ không được ineither");
if ("") console.log("Nope, không phải cái này");
if (null) console.log("Null? Không có cách nào!");
if (undefined) console.log("Undefined? Quên nó đi!");
if (NaN) console.log("NaN? Không có cơ hội!");

if (true) console.log("Điều này sẽ được in!");
if (1) console.log("Điều này cũng vậy!");
if ("Hello") console.log("Chuỗi là truthy!");
if ([]) console.log("Cậm rỗng cũng là truthy!");
if ({}) console.log("Đối tượng rỗng cũng vậy!");

Hiểu rõ các giá trị falsy là rất quan trọng khi làm việc với các điều kiện trong JavaScript. Nó có thể giúp bạn tránh được nhiều buổi gỡ lỗi gây bối rối!

Kết luận

Và đây bạn đã có, các bạn! Chúng ta đã cùng nhau hành trình qua vùng đất của Boolean, từ bản chất true/false đơn giản của chúng đến những đặc điểm kỳ lạ của đối tượng Boolean và các giá trị falsy. Nhớ rằng, trong thế giới lập trình, đôi khi những khái niệm đơn giản nhất lại có thể là mạnh mẽ nhất. Boolean có thể看起来 đơn giản, nhưng chúng là nền móng của logic trong mã của bạn.

Khi bạn tiếp tục cuộc phiêu lưu JavaScript của mình, bạn sẽ thấy Boolean xuất hiện ở mọi nơi - trong các câu lệnh if, các vòng lặp while, và thậm chí là kết quả của các so sánh. Hãy đón nhận chúng, hiểu chúng, và chúng sẽ phục vụ bạn tốt trong hành trình lập trình của bạn.

Tiếp tục luyện tập, 保持好奇心, và chúc các bạn lập trình vui vẻ!

Credits: Image by storyset