JavaScript 的條件判斷主要用於控制程式的執行流程,根據不同的條件來決定執行哪些代碼。以下是條件判斷的主要功用:
根據特定條件決定程式的行為。例如,可以根據用戶的輸入或狀態來執行不同的代碼。
if (age >= 18) {
console.log("You can enter.");
} else {
console.log("Access denied.");
}
在執行可能會失敗的操作時,可以使用條件判斷來捕捉錯誤,並做出相應的處理。
try {
// 嘗試執行某個操作
} catch (error) {
console.error("An error occurred:", error);
}
可以處理多個不同的情況,讓程式更加靈活和可讀。例如,使用 switch
語句處理多個值。
switch (status) {
case 'success':
console.log("Operation succeeded.");
break;
case 'error':
console.log("Operation failed.");
break;
default:
console.log("Unknown status.");
}
可以使用邏輯運算符(如 &&
和 ||
)來結合多個條件,進行更複雜的判斷。
if (isLoggedIn && hasPermission) {
console.log("Welcome back!");
}
根據不同的條件動態改變程序的行為,例如根據用戶的輸入或應用狀態改變顯示的內容。
if (theme === 'dark') {
document.body.classList.add('dark-theme');
} else {
document.body.classList.remove('dark-theme');
}
條件判斷可以幫助簡化代碼結構,避免不必要的重複,並提高可讀性。
在循環或函數中使用條件判斷,可以控制流程,例如跳出循環或條件執行某段代碼。
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 當 i 等於 5 時,跳出循環
}
console.log(i);
}
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.');
}
三元運算子(? :
)是一種簡潔的條件判斷方式,可以在一行內返回結果。
let age = 18;
let canVote = (age >= 18) ? 'Yes' : 'No';
console.log(canVote); // 'Yes'
利用邏輯運算子的短路特性,可以簡化條件判斷。
let isLoggedIn = true;
let userName = isLoggedIn && 'Alice'; // 如果 isLoggedIn 為 true,userName 將為 'Alice',否則為 false
if
語句的組合條件可以使用邏輯運算子 &&
和 ||
組合多個條件。
let age = 20;
let hasPermission = true;
if (age >= 18 && hasPermission) {
console.log('You can enter.');
} else {
console.log('Access denied.');
}
使用 try...catch
來處理可能發生的錯誤。
try {
let result = riskyFunction(); // 可能會拋出錯誤的函數
} catch (error) {
console.log('An error occurred:', error.message);
}
Array.prototype.includes()
可以用來判斷一個數組中是否包含某個值,這比 indexOf()
更簡潔。
let fruits = ['apple', 'banana', 'cherry'];
if (fruits.includes('banana')) {
console.log('Banana is in the list.');
}
將複雜的條件判斷封裝成函數,提高可讀性。
function isEligible(age, hasPermission) {
return age >= 18 && hasPermission;
}
if (isEligible(20, true)) {
console.log('You can enter.');
}
使用對象映射來處理多個條件,特別是在需要根據不同條件返回不同值時。
const statusMessages = {
'success': 'Operation was successful!',
'error': 'An error occurred!',
'pending': 'Operation is pending.'
};
let status = 'success';
console.log(statusMessages[status] || 'Unknown status.');
在判斷時直接解構賦值,可以使代碼更加簡潔。
let user = { age: 20, isActive: true };
let { age, isActive } = user;
if (age >= 18 && isActive) {
console.log('Access granted.');
}
null
合併運算子??
運算符可以用來判斷變數是否為 null
或 undefined
,並給予預設值。
let userInput = null;
let defaultInput = userInput ?? 'Default value';
console.log(defaultInput); // 'Default value'