JavaScript 的流程控制用于控制代码的执行顺序,主要包括 条件语句、循环语句 和 错误处理。以下是详细的分类和示例:
根据条件决定代码执行的分支。
if...else
if (条件1) {
// 条件1为 true 时执行
} else if (条件2) {
// 条件2为 true 时执行
} else {
// 其他情况执行
}
switch
根据值严格匹配(===
)执行不同分支:
switch (表达式) {
case 值1:
// 匹配值1时执行
break;
case 值2:
// 匹配值2时执行
break;
default:
// 默认情况执行
}
条件 ? 表达式1 : 表达式2;
// 示例
const result = age >= 18 ? "成年" : "未成年";
重复执行代码块。
for
循环for (初始化; 条件; 更新) {
// 循环体
}
// 示例:遍历数组
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
while
循环先检查条件,再执行循环体:
while (条件) {
// 循环体
}
do...while
循环先执行一次循环体,再检查条件:
do {
// 循环体
} while (条件);
for...of
遍历可迭代对象(如数组、字符串)for (const item of iterable) {
// 示例:遍历数组
console.log(item);
}
for...in
遍历对象的可枚举属性for (const key in object) {
console.log(key, object[key]); // 输出键和值
}
break
:立即终止循环。continue
:跳过当前循环,进入下一次迭代。捕获和处理运行时错误。
try...catch...finally
try {
// 可能出错的代码
} catch (error) {
// 错误处理(error 包含错误信息)
console.error(error.message);
} finally {
// 无论是否出错都会执行
}
throw
抛出错误if (条件不满足) {
throw new Error("自定义错误信息");
}
与 break
或 continue
配合,控制嵌套循环:
outerLoop: for (let i = 0; i < 3; i++) {
innerLoop: for (let j = 0; j < 3; j++) {
if (i === 1 && j === 1) break outerLoop; // 直接跳出外层循环
}
}
for...in
vs for...of
**:for...in
遍历对象的键(包括原型链上的可枚举属性)。for...of
遍历可迭代对象的值(如数组、Map、Set)。switch
严格匹配:使用 ===
比较值。finally
的执行:无论是否发生错误,finally
中的代码始终执行。if
/switch
/三元运算符)。for
/while
/do...while
/for...of
)。try...catch
/throw
)。合理使用流程控制可以使代码逻辑更清晰、高效!