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

30 KiB

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

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

Sketchnote bởi Tomomi Imura

journey
    title Your JavaScript Decision-Making Adventure
    section Foundation
      Boolean Values: 5: You
      Comparison Operators: 4: You
      Logical Thinking: 5: You
    section Basic Decisions
      If Statements: 4: You
      If-Else Logic: 5: You
      Switch Statements: 4: You
    section Advanced Logic
      Logical Operators: 5: You
      Complex Conditions: 4: You
      Ternary Expressions: 5: You

Bạn đã bao giờ tự hỏi làm thế nào các ứng dụng đưa ra quyết định thông minh chưa? Như cách hệ thống định vị chọn tuyến đường nhanh nhất, hoặc cách bộ điều nhiệt quyết định khi nào bật nhiệt? Đây là khái niệm cơ bản về việc ra quyết định trong lập trình.

Cũng giống như Máy phân tích của Charles Babbage được thiết kế để thực hiện các chuỗi hoạt động khác nhau dựa trên điều kiện, các chương trình JavaScript hiện đại cần đưa ra lựa chọn dựa trên các hoàn cảnh khác nhau. Khả năng phân nhánh và đưa ra quyết định này là điều biến đổi mã tĩnh thành các ứng dụng phản hồi và thông minh.

Trong bài học này, bạn sẽ học cách triển khai logic điều kiện trong chương trình của mình. Chúng ta sẽ khám phá các câu lệnh điều kiện, toán tử so sánh và biểu thức logic cho phép mã của bạn đánh giá tình huống và phản hồi phù hợp.

Quiz trước bài học

Quiz trước bài học

Khả năng đưa ra quyết định và kiểm soát luồng chương trình là một khía cạnh cơ bản của lập trình. Phần này bao gồm cách kiểm soát đường dẫn thực thi của các chương trình JavaScript của bạn bằng các giá trị Boolean và logic điều kiện.

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!

mindmap
  root((Decision Making))
    Boolean Logic
      true/false
      Comparison results
      Logical expressions
    Conditional Statements
      if statements
        Single condition
        Code execution
      if-else
        Two paths
        Alternative actions
      switch
        Multiple options
        Clean structure
    Operators
      Comparison
        === !== < > <= >=
        Value relationships
      Logical
        && || !
        Combine conditions
    Advanced Patterns
      Ternary
        ? : syntax
        Inline decisions
      Complex Logic
        Nested conditions
        Multiple criteria

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

Trước khi khám phá việc ra quyết định, hãy cùng ôn lại các giá trị Boolean từ bài học trước. Được đặt tên theo nhà toán học George Boole, các giá trị này đại diện cho trạng thái nhị phân hoặc true hoặc false. Không có sự mơ hồ, không có trạng thái trung gian.

Những giá trị nhị phân này là nền tảng của tất cả logic tính toán. Mọi quyết định mà chương trình của bạn đưa ra cuối cùng đều giảm xuống thành một đánh giá Boolean.

Việc tạo các biến Boolean rất đơn giản:

let myTrueBool = true;
let myFalseBool = false;

Điều này tạo ra hai biến với các giá trị Boolean rõ ràng.

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

Trong thực tế, bạn hiếm khi đặt giá trị Boolean một cách thủ công. Thay vào đó, bạn sẽ tạo ra chúng bằng cách đánh giá các điều kiện: "Số này có lớn hơn số kia không?" hoặc "Các giá trị này có bằng nhau không?"

Các toán tử so sánh cho phép thực hiện các đánh giá này. Chúng so sánh các giá trị và trả về kết quả Boolean dựa trên mối quan hệ giữa các toán hạ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 nhau nghiêm ngặt: So sánh hai giá trị và trả về kiểu dữ liệu Boolean true nếu các giá trị ở bên phải và bên trái bằng nhau VÀ cùng kiểu dữ liệu 5 === 6 // false
!== Không bằng nhau: So sánh hai giá trị và trả về giá trị Boolean ngược lại với kết quả mà toán tử bằng nhau nghiêm ngặt sẽ trả về 5 !== 6 // true

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

flowchart LR
    A["🔢 Values"] --> B["⚖️ Comparison"]
    B --> C["✅ Boolean Result"]
    
    D["5"] --> E["< 6"]
    E --> F["true"]
    
    G["10"] --> H["=== '10'"]
    H --> I["false"]
    
    J["'hello'"] --> K["!== 'world'"]
    K --> L["true"]
    
    M["📋 Operator Types"] --> M1["Equality: === !=="]
    M --> M2["Relational: < > <= >="]
    M --> M3["Strict vs Loose"]
    
    style A fill:#e3f2fd
    style C fill:#e8f5e8
    style M fill:#fff3e0

🧠 Kiểm tra sự thành thạo về so sánh: Hiểu logic Boolean

Kiểm tra sự hiểu biết của bạn về so sánh:

  • Tại sao bạn nghĩ rằng === (bằng nhau nghiêm ngặt) thường được ưu tiên hơn == (bằng nhau không nghiêm ngặt)?
  • Bạn có thể dự đoán 5 === '5' trả về gì không? Còn 5 == '5' thì sao?
  • Sự khác biệt giữa !==!= là gì?
stateDiagram-v2
    [*] --> Comparison: Two values
    Comparison --> StrictEqual: === or !==
    Comparison --> Relational: < > <= >=
    
    StrictEqual --> TypeCheck: Check type AND value
    Relational --> NumberCompare: Convert to numbers
    
    TypeCheck --> BooleanResult: true or false
    NumberCompare --> BooleanResult
    
    note right of StrictEqual
        Preferred approach
        No type conversion
    end note
    
    note right of Relational
        Useful for ranges
        Numerical comparisons
    end note

Mẹo chuyên nghiệp: Luôn sử dụng ===!== để kiểm tra sự bằng nhau trừ khi bạn thực sự cần chuyển đổi kiểu. Điều này giúp tránh hành vi không mong muốn!

Câu lệnh If

Câu lệnh if giống như việc đặt câu hỏi trong mã của bạn. "Nếu điều kiện này đúng, thì làm điều này." Đây có lẽ là công cụ quan trọng nhất bạn sẽ sử dụng để đưa ra quyết định trong JavaScript.

Cách hoạt động như sau:

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

Điều kiện được đặt trong dấu ngoặc đơn, và nếu nó là true, JavaScript sẽ chạy mã bên trong dấu ngoặc nhọn. Nếu nó là false, JavaScript sẽ bỏ qua toàn bộ khối đó.

Bạn thường sử dụng các toán tử so sánh để tạo ra các điều kiện này. Hãy xem một ví dụ thực tế:

let currentMoney = 1000;
let laptopPrice = 800;

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

1000 >= 800 đánh giá là true, mã bên trong khối sẽ được thực thi, hiển thị "Getting a new laptop!" trong bảng điều khiển.

flowchart TD
    A["🚀 Program Start"] --> B{"💰 currentMoney >= laptopPrice?"}
    B -->|true| C["🎉 'Getting a new laptop!'"]
    B -->|false| D["⏭️ Skip code block"]
    C --> E["📋 Continue program"]
    D --> E
    
    F["📊 If Statement Structure"] --> F1["if (condition) {"]
    F1 --> F2["  // code to run if true"]
    F2 --> F3["}"]
    
    style B fill:#fff3e0
    style C fill:#e8f5e8
    style D fill:#ffebee
    style F fill:#e3f2fd

Câu lệnh If..Else

Nhưng nếu bạn muốn chương trình của mình làm điều gì đó khác khi điều kiện là false thì sao? Đó là lúc else xuất hiện nó giống như có một kế hoạch dự phòng.

Câu lệnh else cho bạn cách nói "nếu điều kiện này không đúng, hãy làm điều khác thay thế."

let currentMoney = 500;
let laptopPrice = 800;

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!");
}

Bây giờ vì 500 >= 800false, JavaScript sẽ bỏ qua khối đầu tiên và chạy khối else thay thế. Bạn sẽ thấy "Can't afford a new laptop, yet!" trong bảng điều khiển.

Kiểm tra sự hiểu biết của bạn về mã này và 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 currentMoney và laptopPrice để thay đổi kết quả console.log().

🎯 Kiểm tra logic If-Else: Các đường dẫn phân nhánh

Đánh giá sự hiểu biết của bạn về logic điều kiện:

  • Điều gì xảy ra nếu currentMoney bằng chính xác laptopPrice?
  • Bạn có thể nghĩ đến một tình huống thực tế nào mà logic if-else sẽ hữu ích không?
  • Làm thế nào bạn có thể mở rộng điều này để xử lý nhiều mức giá khác nhau?
flowchart TD
    A["🔍 Evaluate Condition"] --> B{"Condition True?"}
    B -->|Yes| C["📤 Execute IF block"]
    B -->|No| D["📥 Execute ELSE block"]
    
    C --> E["✅ One path taken"]
    D --> E
    
    F["🌐 Real-world Examples"] --> F1["User login status"]
    F --> F2["Age verification"]
    F --> F3["Form validation"]
    F --> F4["Game state changes"]
    
    style B fill:#fff3e0
    style C fill:#e8f5e8
    style D fill:#e3f2fd
    style F fill:#f3e5f5

Thông tin quan trọng: If-else đảm bảo chỉ có một đường dẫn được thực hiện. Điều này đảm bảo chương trình của bạn luôn có phản hồi cho bất kỳ điều kiện nào!

Câu lệnh Switch

Đôi khi bạn cần so sánh một giá trị với nhiều tùy chọn. Mặc dù bạn có thể nối nhiều câu lệnh if..else, cách tiếp cận này trở nên khó quản lý. Câu lệnh switch cung cấp một cấu trúc gọn gàng hơn để xử lý nhiều giá trị riêng biệt.

Khái niệm này giống như các hệ thống chuyển mạch cơ học được sử dụng trong các tổng đài điện thoại đầu tiên một giá trị đầu vào xác định đường dẫn thực thi cụ thể nào sẽ được theo.

switch (expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

Cách nó được cấu trúc:

  • JavaScript đánh giá biểu thức một lần
  • Nó tìm qua từng case để tìm một kết quả khớp
  • Khi tìm thấy kết quả khớp, nó chạy khối mã đó
  • break yêu cầu JavaScript dừng và thoát khỏi switch
  • Nếu không có case nào khớp, nó chạy khối default (nếu bạn có)
// Program using switch statement for day of week
let dayNumber = 2;
let dayName;

switch (dayNumber) {
  case 1:
    dayName = "Monday";
    break;
  case 2:
    dayName = "Tuesday";
    break;
  case 3:
    dayName = "Wednesday";
    break;
  default:
    dayName = "Unknown day";
    break;
}
console.log(`Today is ${dayName}`);

Trong ví dụ này, JavaScript thấy rằng dayNumber2, tìm case 2 khớp, đặt dayName thành "Tuesday", và sau đó thoát khỏi switch. Kết quả? "Today is Tuesday" được ghi vào bảng điều khiển.

flowchart TD
    A["📥 switch(expression)"] --> B["🔍 Evaluate once"]
    B --> C{"Match case 1?"}
    C -->|Yes| D["📋 Execute case 1"]
    C -->|No| E{"Match case 2?"}
    E -->|Yes| F["📋 Execute case 2"]
    E -->|No| G{"Match case 3?"}
    G -->|Yes| H["📋 Execute case 3"]
    G -->|No| I["📋 Execute default"]
    
    D --> J["🛑 break"]
    F --> K["🛑 break"]
    H --> L["🛑 break"]
    
    J --> M["✅ Exit switch"]
    K --> M
    L --> M
    I --> M
    
    style A fill:#e3f2fd
    style B fill:#fff3e0
    style M fill:#e8f5e8

Kiểm tra sự hiểu biết của bạn về mã này và 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ả console.log().

🔄 Kiểm tra sự thành thạo Switch: Nhiều tùy chọn

Kiểm tra sự hiểu biết của bạn về switch:

  • Điều gì xảy ra nếu bạn quên một câu lệnh break?
  • Khi nào bạn sẽ sử dụng switch thay vì nhiều câu lệnh if-else?
  • Tại sao case default lại hữu ích ngay cả khi bạn nghĩ rằng bạn đã bao phủ tất cả các khả năng?
pie title "When to Use Each Decision Structure"
    "Simple if-else" : 40
    "Complex if-else chains" : 25
    "Switch statements" : 20
    "Ternary operators" : 15

Thực hành tốt nhất: Sử dụng switch khi so sánh một biến với nhiều giá trị cụ thể. Sử dụng if-else cho các kiểm tra phạm vi hoặc điều kiện phức tạp!

Toán tử logic và Booleans

Các quyết định phức tạp thường yêu cầu đánh giá nhiều điều kiện cùng lúc. Cũng như đại số Boolean cho phép các nhà toán học kết hợp các biểu thức logic, lập trình cung cấp các toán tử logic để kết nối nhiều điều kiện Boolean.

Các toán tử này cho phép logic điều kiện phức tạp bằng cách kết hợp các đánh giá true/false đơn giản.

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 đúng (5 > 3) && (5 < 10) // Cả hai bên đều đúng. Trả về true
|| Logic OR: So sánh hai biểu thức Boolean. Trả về true nếu ít nhất một bên đúng (5 > 10) || (5 < 10) // Một bên sai, bên kia đúng. Trả về true
! Logic NOT: Trả về giá trị ngược lại của một biểu thức Boolean !(5 > 10) // 5 không lớn hơn 10, nên "!" làm nó đúng

Các toán tử này cho phép bạn kết hợp các điều kiện theo cách hữu ích:

  • AND (&&) nghĩa là cả hai điều kiện phải đúng
  • OR (||) nghĩa là ít nhất một điều kiện phải đúng
  • NOT (!) đảo ngược true thành false (và ngược lại)
flowchart LR
    A["🔗 Logical Operators"] --> B["&& AND"]
    A --> C["|| OR"]
    A --> D["! NOT"]
    
    B --> B1["Both must be true"]
    B --> B2["true && true = true"]
    B --> B3["true && false = false"]
    
    C --> C1["At least one true"]
    C --> C2["true || false = true"]
    C --> C3["false || false = false"]
    
    D --> D1["Flips the value"]
    D --> D2["!true = false"]
    D --> D3["!false = true"]
    
    E["🌍 Real Examples"] --> E1["Age >= 18 && hasLicense"]
    E --> E2["isWeekend || isHoliday"]
    E --> E3["!isLoggedIn"]
    
    style A fill:#e3f2fd
    style B fill:#e8f5e8
    style C fill:#fff3e0
    style D fill:#f3e5f5
    style E fill:#e0f2f1

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

Hãy xem các toán tử logic này hoạt động trong một ví dụ thực tế hơn:

let currentMoney = 600;
let laptopPrice = 800;
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 false. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

Trong ví dụ này: chúng ta tính giá giảm 20% (640), sau đó đánh giá liệu số tiền có sẵn của chúng ta có đủ để chi trả giá đầy đủ HOẶC giá giảm hay không. Vì 600 đáp ứng ngưỡng giá giảm là 640, điều kiện đánh giá là true.

🧮 Kiểm tra toán tử logic: Kết hợp điều kiện

Kiểm tra sự hiểu biết của bạn về toán tử logic:

  • Trong biểu thức A && B, điều gì xảy ra nếu A là false? B có được đánh giá không?
  • Bạn có thể nghĩ đến một tình huống mà bạn cần cả ba toán tử (&&, ||, !) cùng nhau không?
  • Sự khác biệt giữa !user.isActiveuser.isActive !== true là gì?
stateDiagram-v2
    [*] --> EvaluateA: A && B
    EvaluateA --> CheckB: A is true
    EvaluateA --> ReturnFalse: A is false
    CheckB --> ReturnTrue: B is true
    CheckB --> ReturnFalse: B is false
    
    [*] --> EvaluateC: A || B
    EvaluateC --> ReturnTrue: A is true
    EvaluateC --> CheckD: A is false
    CheckD --> ReturnTrue: B is true
    CheckD --> ReturnFalse: B is false
    
    note right of EvaluateA
        Short-circuit evaluation:
        If A is false, B is never checked
    end note

Mẹo hiệu suất: JavaScript sử dụng "đánh giá ngắn mạch" - trong A && B, nếu A là false, B thậm chí không được đánh giá. Hãy tận dụng điều này!

Toán tử phủ định

Đôi khi dễ dàng hơn để nghĩ về khi điều gì đó KHÔNG đúng. Như thay vì hỏi "Người dùng đã đăng nhập chưa?", bạn có thể muốn hỏi "Người dùng CHƯA đăng nhập?" Dấu chấm than (!) đảo ngược logic cho bạn.

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

Toán tử ! giống như nói "ngược lại với..." nếu điều gì đó là true, ! làm nó thành false, và ngược lại.

Biểu thức Ternary

Đối với các phép gán điều kiện đơn giản, JavaScript cung cấp toán tử ternary. Cú pháp ngắn gọn này cho phép bạn viết một biểu thức điều kiện trong một dòng, hữu ích khi bạn cần gán một trong hai giá trị dựa trên một điều kiện.

let variable = condition ? returnThisIfTrue : returnThisIfFalse;

Nó đọc như một câu hỏi: "Điều kiện này có đúng không? Nếu đúng, sử dụng giá trị này. Nếu không, sử dụng giá trị kia."

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 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?

Đây là điều mà dòng này đang nói: "Số firstNumber có lớn hơn secondNumber không? Nếu đúng, đặt firstNumber vào biggestNumber. Nếu không, đặt secondNumber vào biggestNumber."

Toán tử ternary chỉ là cách viết ngắn gọn hơn của câu lệnh if..else truyền thống:

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

Cả hai cách đều cho ra kết quả giống nhau. Toán tử ternary mang lại sự ngắn gọn, trong khi cấu trúc if-else truyền thống có thể dễ đọc hơn đối với các điều kiện phức tạp.

flowchart LR
    A["🤔 Ternary Operator"] --> B["condition ?"]
    B --> C["valueIfTrue :"]
    C --> D["valueIfFalse"]
    
    E["📝 Traditional If-Else"] --> F["if (condition) {"]
    F --> G["  return valueIfTrue"]
    G --> H["} else {"]
    H --> I["  return valueIfFalse"]
    I --> J["}"]
    
    K["⚡ When to Use"] --> K1["Simple assignments"]
    K --> K2["Short conditions"]
    K --> K3["Inline decisions"]
    K --> K4["Return statements"]
    
    style A fill:#e3f2fd
    style E fill:#fff3e0
    style K fill:#e8f5e8

🚀 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 ternary. Bạn thích cú pháp nào hơn?


Thử thách GitHub Copilot Agent 🚀

Sử dụng chế độ Agent để hoàn thành thử thách sau:

Mô tả: Tạo một máy tính điểm toàn diện thể hiện nhiều khái niệm ra quyết định từ bài học này, bao gồm các câu lệnh if-else, switch, toán tử logic và biểu thức ternary.

Yêu cầu: Viết một chương trình JavaScript nhận điểm số của học sinh (0-100) và xác định điểm chữ của họ dựa trên các tiêu chí sau:

  • A: 90-100
  • B: 80-89
  • C: 70-79
  • D: 60-69
  • F: Dưới 60

Yêu cầu:

  1. Sử dụng câu lệnh if-else để xác định điểm chữ
  2. Sử dụng các toán tử logic để kiểm tra xem học sinh có đạt (điểm >= 60) VÀ có danh hiệu xuất sắc (điểm >= 90)
  3. Sử dụng câu lệnh switch để cung cấp phản hồi cụ thể cho từng loại điểm chữ
  4. Sử dụng toán tử ternary để xác định xem học sinh có đủ điều kiện tham gia khóa học tiếp theo (điểm >= 70)
  5. Bao gồm kiểm tra đầu vào để đảm bảo điểm nằm trong khoảng từ 0 đến 100

Kiểm tra chương trình của bạn với nhiều điểm số khác nhau, bao gồm các trường hợp biên như 59, 60, 89, 90 và các đầu vào không hợp lệ.

Tìm hiểu thêm về chế độ agent tại đây.

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ề các 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ử


🧠 Tóm tắt Bộ Công Cụ Ra Quyết Định của Bạn

graph TD
    A["🎯 JavaScript Decisions"] --> B["🔍 Boolean Logic"]
    A --> C["📊 Conditional Statements"]
    A --> D["🔗 Logical Operators"]
    A --> E["⚡ Advanced Patterns"]
    
    B --> B1["true/false values"]
    B --> B2["Comparison operators"]
    B --> B3["Truthiness concepts"]
    
    C --> C1["if statements"]
    C --> C2["if-else chains"]
    C --> C3["switch statements"]
    
    D --> D1["&& (AND)"]
    D --> D2["|| (OR)"]
    D --> D3["! (NOT)"]
    
    E --> E1["Ternary operator"]
    E --> E2["Short-circuit evaluation"]
    E --> E3["Complex conditions"]
    
    F["💡 Key Principles"] --> F1["Clear readable conditions"]
    F --> F2["Consistent comparison style"]
    F --> F3["Proper operator precedence"]
    F --> F4["Efficient evaluation order"]
    
    style A fill:#e3f2fd
    style B fill:#e8f5e8
    style C fill:#fff3e0
    style D fill:#f3e5f5
    style E fill:#e0f2f1
    style F fill:#fce4ec

🚀 Lộ trình làm chủ ra quyết định trong JavaScript của bạn

Những gì bạn có thể làm trong 5 phút tới

  • Thực hành các toán tử so sánh trong console trình duyệt của bạn
  • Viết một câu lệnh if-else đơn giản để kiểm tra tuổi của bạn
  • Thử thách: viết lại một câu lệnh if-else bằng toán tử ternary
  • Kiểm tra điều gì xảy ra với các giá trị "truthy" và "falsy" khác nhau

🎯 Những gì bạn có thể hoàn thành trong giờ này

  • Hoàn thành bài kiểm tra sau bài học và xem lại các khái niệm gây nhầm lẫn
  • Xây dựng máy tính điểm toàn diện từ thử thách GitHub Copilot
  • Tạo một cây quyết định đơn giản cho một tình huống thực tế (như chọn trang phục)
  • Thực hành kết hợp nhiều điều kiện với các toán tử logic
  • Thử nghiệm với các câu lệnh switch cho các trường hợp sử dụng khác nhau

📅 Làm chủ logic trong một tuần

  • Hoàn thành bài tập về toán tử với các ví dụ sáng tạo
  • Xây dựng một ứng dụng quiz nhỏ sử dụng các cấu trúc điều kiện khác nhau
  • Tạo một trình kiểm tra biểu mẫu để kiểm tra nhiều điều kiện đầu vào
  • Thực hành các bài tập tra cứu toán tử của Josh Comeau operator lookup
  • Tái cấu trúc mã hiện có để sử dụng các cấu trúc điều kiện phù hợp hơn
  • Nghiên cứu đánh giá ngắn mạch và các tác động đến hiệu suất

🌟 Biến đổi trong một tháng

  • Làm chủ các điều kiện lồng phức tạp và duy trì khả năng đọc mã
  • Xây dựng một ứng dụng với logic ra quyết định tinh vi
  • Đóng góp cho mã nguồn mở bằng cách cải thiện logic điều kiện trong các dự án hiện có
  • Dạy người khác về các cấu trúc điều kiện khác nhau và khi nào nên sử dụng từng loại
  • Khám phá các phương pháp lập trình hàm cho logic điều kiện
  • Tạo một hướng dẫn tham khảo cá nhân về các thực hành tốt nhất cho điều kiện

🏆 Kiểm tra cuối cùng về làm chủ ra quyết định

Ăn mừng sự làm chủ tư duy logic của bạn:

  • Logic quyết định phức tạp nhất mà bạn đã triển khai thành công là gì?
  • Cấu trúc điều kiện nào cảm thấy tự nhiên nhất với bạn và tại sao?
  • Việc học về các toán tử logic đã thay đổi cách tiếp cận giải quyết vấn đề của bạn như thế nào?
  • Ứng dụng thực tế nào sẽ được hưởng lợi từ logic ra quyết định tinh vi?
journey
    title Your Logical Thinking Evolution
    section Today
      Boolean Confusion: 3: You
      If-Else Understanding: 4: You
      Operator Recognition: 5: You
    section This Week
      Complex Conditions: 4: You
      Switch Mastery: 5: You
      Logical Combinations: 5: You
    section Next Month
      Advanced Patterns: 5: You
      Performance Awareness: 5: You
      Teaching Others: 5: You

🧠 Bạn đã làm chủ nghệ thuật ra quyết định kỹ thuật số! Mọi ứng dụng tương tác đều dựa vào logic điều kiện để phản hồi thông minh với hành động của người dùng và các điều kiện thay đổi. Giờ đây, bạn hiểu cách làm cho chương trình của mình suy nghĩ, đánh giá và chọn phản hồi phù hợp. Nền tảng logic này sẽ cung cấp sức mạnh cho mọi ứng dụng động mà bạn xây dựng! 🎉


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 thông tin chính thức. Đối với thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi 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.