You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/vi/2-js-basics/3-making-decisions/README.md

11 KiB

Cơ bản về JavaScript: Ra quyết định

Cơ bản về JavaScript - Ra quyết định

Sketchnote bởi Tomomi Imura

Câu hỏi trước bài giảng

Câu hỏi trước bài giảng

Việc ra quyết định và kiểm soát thứ tự chạy của mã giúp mã của bạn có thể tái sử dụng và mạnh mẽ hơn. Phần này sẽ đề cập đến cú pháp để kiểm soát luồng dữ liệu trong JavaScript và tầm quan trọng của nó khi sử dụng với kiểu dữ liệu Boolean.

Ra quyết định

🎥 Nhấp vào hình ảnh trên để xem video về việc ra quyết định.

Bạn có thể học bài này trên Microsoft Learn!

Tóm tắt ngắn gọn về Booleans

Booleans chỉ có thể có hai giá trị: true hoặc false. Booleans giúp đưa ra quyết định về dòng mã nào sẽ chạy khi các điều kiện nhất định được đáp ứng.

Đặt giá trị boolean của bạn là true hoặc false như sau:

let myTrueBool = true
let myFalseBool = false

Booleans được đặt tên theo nhà toán học, triết gia và nhà logic học người Anh George Boole (18151864).

Toán tử so sánh và Booleans

Toán tử được sử dụng để đánh giá các điều kiện bằng cách so sánh, từ đó tạo ra giá trị Boolean. Dưới đây là danh sách các toán tử thường được sử dụng.

Ký hiệu Mô tả Ví dụ
< Nhỏ hơn: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu giá trị bên trái nhỏ hơn giá trị bên phải 5 < 6 // true
<= Nhỏ hơn hoặc bằng: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu giá trị bên trái nhỏ hơn hoặc bằng giá trị bên phải 5 <= 6 // true
> Lớn hơn: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu giá trị bên trái lớn hơn giá trị bên phải 5 > 6 // false
>= Lớn hơn hoặc bằng: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu giá trị bên trái lớn hơn hoặc bằng giá trị bên phải 5 >= 6 // false
=== Bằng nghiêm ngặt: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu giá trị bên trái và bên phải bằng nhau VÀ cùng kiểu dữ liệu 5 === 6 // false
!== Không bằng: So sánh hai giá trị và trả về giá trị Boolean ngược lại với kết quả của toán tử bằng nghiêm ngặt 5 !== 6 // true

Kiểm tra kiến thức của bạn bằng cách viết một số phép so sánh trong bảng điều khiển của trình duyệt. Có kết quả nào khiến bạn ngạc nhiên không?

Câu lệnh If

Câu lệnh if sẽ chạy đoạn mã nằm giữa các khối của nó nếu điều kiện là true.

if (condition) {
  //Condition is true. Code in this block will run.
}

Các toán tử logic thường được sử dụng để tạo điều kiện.

let currentMoney;
let laptopPrice;

if (currentMoney >= laptopPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
}

Câu lệnh If..Else

Câu lệnh else sẽ chạy đoạn mã nằm giữa các khối của nó khi điều kiện là false. Nó là tùy chọn khi sử dụng với câu lệnh if.

let currentMoney;
let laptopPrice;

if (currentMoney >= laptopPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  //Condition is false. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

Kiểm tra sự hiểu biết của bạn về đoạn mã này và đoạn mã sau bằng cách chạy nó trong bảng điều khiển trình duyệt. Thay đổi giá trị của các biến currentMoneylaptopPrice để thay đổi kết quả của console.log().

Câu lệnh Switch

Câu lệnh switch được sử dụng để thực hiện các hành động khác nhau dựa trên các điều kiện khác nhau. Sử dụng câu lệnh switch để chọn một trong nhiều khối mã cần thực thi.

switch (expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
  // code block
}
// program using switch statement
let a = 2;

switch (a) {
  case 1:
    a = "one";
    break;
  case 2:
    a = "two";
    break;
  default:
    a = "not found";
    break;
}
console.log(`The value is ${a}`);

Kiểm tra sự hiểu biết của bạn về đoạn mã này và đoạn mã sau bằng cách chạy nó trong bảng điều khiển trình duyệt. Thay đổi giá trị của biến a để thay đổi kết quả của console.log().

Toán tử logic và Booleans

Các quyết định có thể yêu cầu nhiều hơn một phép so sánh và có thể được kết hợp với các toán tử logic để tạo ra giá trị Boolean.

Ký hiệu Mô tả Ví dụ
&& Logic AND: So sánh hai biểu thức Boolean. Trả về true chỉ khi cả hai bên đều true (5 > 6) && (5 < 6 ) // Một bên false, bên kia true. Trả về false
|| Logic OR: So sánh hai biểu thức Boolean. Trả về true nếu ít nhất một bên là true (5 > 6) || (5 < 6) // Một bên false, bên kia true. Trả về true
! Logic NOT: Trả về giá trị ngược lại của một biểu thức Boolean !(5 > 6) // 5 không lớn hơn 6, nhưng "!" sẽ trả về true

Điều kiện và quyết định với toán tử logic

Toán tử logic có thể được sử dụng để tạo điều kiện trong các câu lệnh if..else.

let currentMoney;
let laptopPrice;
let laptopDiscountPrice = laptopPrice - laptopPrice * 0.2; //Laptop price at 20 percent off

if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
  //Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  //Condition is true. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

Toán tử phủ định

Bạn đã thấy cách sử dụng câu lệnh if...else để tạo logic điều kiện. Bất kỳ điều gì trong if cần được đánh giá là true/false. Bằng cách sử dụng toán tử !, bạn có thể phủ định biểu thức. Nó sẽ trông như sau:

if (!condition) {
  // runs if condition is false
} else {
  // runs if condition is true
}

Biểu thức ba ngôi

if...else không phải là cách duy nhất để biểu diễn logic quyết định. Bạn cũng có thể sử dụng một thứ gọi là toán tử ba ngôi. Cú pháp của nó như sau:

let variable = condition ? <return this if true> : <return this if false>

Dưới đây là một ví dụ cụ thể hơn:

let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;

Dành một phút để đọc đoạn mã này vài lần. Bạn có hiểu cách các toán tử này hoạt động không?

Đoạn mã trên nói rằng:

  • nếu firstNumber lớn hơn secondNumber
  • thì gán firstNumber cho biggestNumber
  • ngược lại gán secondNumber.

Biểu thức ba ngôi chỉ là một cách viết gọn của đoạn mã dưới đây:

let biggestNumber;
if (firstNumber > secondNumber) {
  biggestNumber = firstNumber;
} else {
  biggestNumber = secondNumber;
}

🚀 Thử thách

Tạo một chương trình được viết trước tiên với các toán tử logic, sau đó viết lại nó bằng biểu thức ba ngôi. Bạn thích cú pháp nào hơn?


Câu hỏi sau bài giảng

Câu hỏi sau bài giảng

Ôn tập & Tự học

Đọc thêm về nhiều toán tử có sẵn cho người dùng trên MDN.

Xem qua công cụ tra cứu toán tử tuyệt vời của Josh Comeau operator lookup!

Bài tập

Toán tử


Tuyên bố miễn trừ trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.