- vừa được xem lúc

Boolean trong Javascript

0 0 13

Người đăng: LongNguyen

Theo Viblo Asia

Xin chào mọi người,

Hôm nay mình sẽ giới thiệu về kiểu dữ liệu Boolean trong Javascript. Các khái niệm cơ bản, kèm các keyword và link để mọi người có thể tìm hiểu thêm. Build-in object Boolean, truthy, falsy, toán tử so sánh(comparison operators), toán tử luận lý(logical operators)

Không để mọi người chờ lâu, cùng mình bắt đầu nào.

1. Định nghĩa

Boolean là kiểu dữ liệu nguyên thủy (primitive) và chỉ có hai giá trị true hoặc fasle

Bạn nào chưa rõ kiểu dữ liệu nguyên thủy là gì thì đọc thêm link này nha: https://developer.mozilla.org/en-US/docs/Glossary/Primitive

2. Tìm hiểu về Truthy và Falsy

  • Truthy là những giá trị khi chuyển đổi về Boolean thì sẽ có giá trị true.
  • Falsy là những giá trị khi chuyển đổi về Boolean thì sẽ có giá trị false

Javascript cung cấp một build-in object (những object xây dựng sẵn) là Boolean chứa những function xây dựng sẵn để làm việc với kiểu dữ liệu boolean.

Tham khảo về build-in object Boolean tại link này: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

Boolean() function giúp ta kiểm tra một giá trị là true hay false.

Ví dụ:

console.log(Boolean("Message")); //true console.log(Boolean(10 < 9));//true

Vậy làm thế nào để biết một giá trị là Truthy hay Falsy.

Bảng bên dưới cung cấp danh sách giá trị Falsy trong Javascript:

(Note: Còn lại các giá trị nằm ngoài bảng này sẽ là Truthy)

Ví dụ: Các trường hợp có giá trị Falsy và Truthy thường gặp trong câu lệnh rẽ nhánh If


if (false) //Falsy
if('false') //Truthy
if (null) //Falsy
if ('null') //Truthy
if (undefined) //Falsy
if (0) //Falsy
if (-0) //Falsy
if (-10) //Truthy
if (0n)//Falsy
if (NaN) //Falsy
if ("") //Falsy
if (" ") //Truthy

3. Toán tử so sánh trong javascript (Comparison operation)

Phần này khá rối vậy nên để hiểu rõ mọi người nên thực hành chạy thử code cho các trường hợp so sánh ở ví dụ dưới để hiểu rõ hơn.

Kết quả của phép so sánh trong javascript là Boolean(true/false)

  • So sánh bằng ta dùng toán tử == toán tử này giúp ép kiểu dữ liệu khi so sánh.
if(9 == 9) //Truthy if(9 == '9') //Truthy bởi vì '9' kiểu string sẽ ép kiểu thành 9 kiểu số (numeric) if(9 == '09') //Truthy bởi vì '09' kiểu string sẽ ép kiểu thành 9 kiểu số (numeric) if(0 == false) //Truthy bởi vì 0 sẽ ép kiểu thành false if(false == -10) //Falsy bởi vì false sẽ ép kiểu về 0
  • So sánh bằng ta cũng có thể dùng toán tử === toán tử này sẽ không ép kiểu dữ liệu khi so sánh. Trả về giá trị true khi bằng cả giá trị và cùng kiểu dữ liệu.
if(9 === 9) //Truthy if(9 === '9') //Falsy bởi vì '9' kiểu string sẽ khác 9 kiểu số. ('9' không được ép kiểu) if(9 === '09') //Falsy bởi vì '09' kiểu string khác 9 kiểu số (numeric) if(false === 0) //Falsy bởi vì false khác kiểu dữ liệu 0 if(-10 === false) //Falsy bởi vì -10 khác kiểu dữ liệu false
  • So sánh lớn hơn ta dùng toán tử > (hoặc lớn hơn hoặc bằng ta dùng toán tử >=)
if(10 > 9) //Truthy
  • So sánh nhỏ hơn ta dùng toán tử < (hoặc nhỏ hơn hoặc bằng ta dùng toán tử <=)
if(9 <= 10) //Truthy

So sánh chuỗi ta vẫn sẽ dùng các toán tử trên nhưng có 2 quy tắc sau:

  • So sánh từng ký tự từ trái sang phải
  • Dựa vào bảng mã ASCII để so sánh từng ký tự.

Đọc thêm và tham khảo bản mã ASCII tại link: https://www.w3schools.com/charsets/ref_html_ascii.asp

if('abce' > 'abcd') //Truthy bởi vì e > d if('j' > 'J') //Truthy bởi vì tra bản mã ASCII J hoa có giá trị 74, 
//còn j thường có giá trị 106 if('A' > 1) //Truthy bởi vì 1 có giá trị 49 còn A có giá trị 65

4. Toán tử luận lý (Logical operators)

Toán tử luận lý dùng để định nghĩa logic giữa biến và giá trị với nhau. Kết quả của phép luận lý trong javascript là Boolean(true/false)

  • And (&&)

Ví dụ:

const x = 6;
const y = 3; console.log(x < 10 && y > 1); //true console.log(x > 10 && y > 1); //false
  • Or (||)

Ví dụ:

const x = 6;
const y = 3; console.log(x == 5 || y == 1); //false
console.log(x == 6 || y == 1); //true
  • NOT (!)

Ví dụ:

const x = 6; console.log(!(x == 5)); //true
console.log( !(x == 6)); //false

Tham khảo:

https://www.w3schools.com/js/js_comparisons.asp

https://www.w3schools.com/charsets/ref_html_ascii.asp

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean

https://press.rebus.community/programmingfundamentals/chapter/logical-operators/

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 528

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 436

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 158

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 149

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 113

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 249