iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
JavaScript

入門JavaScript系列 第 14

條件判斷

  • 分享至 

  • xImage
  •  

JavaScript 的條件判斷主要用於控制程式的執行流程,根據不同的條件來決定執行哪些代碼。以下是條件判斷的主要功用:

1. 決策控制

根據特定條件決定程式的行為。例如,可以根據用戶的輸入或狀態來執行不同的代碼。

if (age >= 18) {
    console.log("You can enter.");
} else {
    console.log("Access denied.");
}

2. 錯誤處理

在執行可能會失敗的操作時,可以使用條件判斷來捕捉錯誤,並做出相應的處理。

try {
    // 嘗試執行某個操作
} catch (error) {
    console.error("An error occurred:", error);
}

3. 多條件判斷

可以處理多個不同的情況,讓程式更加靈活和可讀。例如,使用 switch 語句處理多個值。

switch (status) {
    case 'success':
        console.log("Operation succeeded.");
        break;
    case 'error':
        console.log("Operation failed.");
        break;
    default:
        console.log("Unknown status.");
}

4. 邏輯運算

可以使用邏輯運算符(如 &&||)來結合多個條件,進行更複雜的判斷。

if (isLoggedIn && hasPermission) {
    console.log("Welcome back!");
}

5. 動態行為

根據不同的條件動態改變程序的行為,例如根據用戶的輸入或應用狀態改變顯示的內容。

if (theme === 'dark') {
    document.body.classList.add('dark-theme');
} else {
    document.body.classList.remove('dark-theme');
}

6. 簡化代碼

條件判斷可以幫助簡化代碼結構,避免不必要的重複,並提高可讀性。

7. 流程控制

在循環或函數中使用條件判斷,可以控制流程,例如跳出循環或條件執行某段代碼。

for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break; // 當 i 等於 5 時,跳出循環
    }
    console.log(i);
}

其他

1. 使用 switch 語句

switch 語句可以替代多個 if...else 來進行條件判斷,特別是在需要比較多個值時更為清晰。

let fruit = 'banana';

switch (fruit) {
    case 'apple':
        console.log('This is an apple.');
        break;
    case 'banana':
        console.log('This is a banana.');
        break;
    default:
        console.log('Unknown fruit.');
}

2. 三元運算子

三元運算子(? :)是一種簡潔的條件判斷方式,可以在一行內返回結果。

let age = 18;
let canVote = (age >= 18) ? 'Yes' : 'No';
console.log(canVote); // 'Yes'

3. 短路求值

利用邏輯運算子的短路特性,可以簡化條件判斷。

let isLoggedIn = true;
let userName = isLoggedIn && 'Alice'; // 如果 isLoggedIn 為 true,userName 將為 'Alice',否則為 false

4. 使用 if 語句的組合條件

可以使用邏輯運算子 &&|| 組合多個條件。

let age = 20;
let hasPermission = true;

if (age >= 18 && hasPermission) {
    console.log('You can enter.');
} else {
    console.log('Access denied.');
}

5. 防範錯誤的條件判斷

使用 try...catch 來處理可能發生的錯誤。

try {
    let result = riskyFunction(); // 可能會拋出錯誤的函數
} catch (error) {
    console.log('An error occurred:', error.message);
}

6. 使用 Array.prototype.includes()

可以用來判斷一個數組中是否包含某個值,這比 indexOf() 更簡潔。

let fruits = ['apple', 'banana', 'cherry'];
if (fruits.includes('banana')) {
    console.log('Banana is in the list.');
}

7. 使用函數進行複雜判斷

將複雜的條件判斷封裝成函數,提高可讀性。

function isEligible(age, hasPermission) {
    return age >= 18 && hasPermission;
}

if (isEligible(20, true)) {
    console.log('You can enter.');
}

8. 多重條件的降冪判斷

使用對象映射來處理多個條件,特別是在需要根據不同條件返回不同值時。

const statusMessages = {
    'success': 'Operation was successful!',
    'error': 'An error occurred!',
    'pending': 'Operation is pending.'
};

let status = 'success';
console.log(statusMessages[status] || 'Unknown status.');

9. 利用 ES6 的解構賦值

在判斷時直接解構賦值,可以使代碼更加簡潔。

let user = { age: 20, isActive: true };
let { age, isActive } = user;

if (age >= 18 && isActive) {
    console.log('Access granted.');
}

10. 使用 null 合併運算子

?? 運算符可以用來判斷變數是否為 nullundefined,並給予預設值。

let userInput = null;
let defaultInput = userInput ?? 'Default value';
console.log(defaultInput); // 'Default value'

上一篇
物件應用
下一篇
條件判斷應用
系列文
入門JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言