JavaScript控制流程
控制流程语句用于控制程序的执行顺序,包括条件语句和循环语句。
条件语句
条件语句根据条件的真假来决定执行的代码块。
if语句
if语句用于执行条件为真时的代码块:
javascript
let age = 18;
if (age >= 18) {
console.log("你是成年人");
}
if…else语句
if...else语句用于执行条件为真或假时的不同代码块:
javascript
let age = 16;
if (age >= 18) {
console.log("你是成年人");
} else {
console.log("你是未成年人");
}
if…else if…else语句
if...else if...else语句用于处理多个条件:
javascript
let score = 85;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
}
switch语句
switch语句用于根据不同的情况执行不同的代码块:
javascript
let day = 3;
let dayName;
switch (day) {
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
case 4:
dayName = "星期四";
break;
case 5:
dayName = "星期五";
break;
case 6:
dayName = "星期六";
break;
case 7:
dayName = "星期日";
break;
default:
dayName = "无效的星期";
}
console.log(dayName); // 星期三
三元运算符
三元运算符是一种简写的条件语句:
javascript
let age = 18;
let status = age >= 18 ? "成年人" : "未成年人";
console.log(status); // 成年人
循环语句
循环语句用于重复执行代码块,直到满足特定条件。
for循环
for循环是最常用的循环语句,用于固定次数的循环:
javascript
// 基本语法
for (初始化; 条件; 更新) {
// 循环体
}
// 示例:打印1到10的数字
for (let i = 1; i <= 10; i++) {
console.log(i);
}
for…in循环
for...in循环用于遍历对象的可枚举属性:
javascript
let person = {
name: "John",
age: 30,
city: "New York"
};
for (let key in person) {
console.log(key + ": " + person[key]);
}
// 输出:
// name: John
// age: 30
// city: New York
for…of循环
for...of循环用于遍历可迭代对象(如数组、字符串、Map、Set等):
javascript
// 遍历数组
let fruits = ["苹果", "香蕉", "橙子"];
for (let fruit of fruits) {
console.log(fruit);
}
// 遍历字符串
let str = "Hello";
for (let char of str) {
console.log(char);
}
while循环
while循环用于条件为真时重复执行代码块:
javascript
let i = 1;
while (i <= 10) {
console.log(i);
i++;
}
do…while循环
do...while循环与while循环类似,但至少会执行一次循环体:
javascript
let i = 1;
do {
console.log(i);
i++;
} while (i <= 10);
循环控制语句
循环控制语句用于控制循环的执行流程。
break语句
break语句用于终止循环:
javascript
for (let i = 1; i <= 10; i++) {
if (i === 5) {
break; // 当i等于5时终止循环
}
console.log(i);
}
// 输出:1, 2, 3, 4
continue语句
continue语句用于跳过当前循环的剩余部分,继续下一次循环:
javascript
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0) {
continue; // 跳过偶数
}
console.log(i);
}
// 输出:1, 3, 5, 7, 9
label语句
label语句用于标记循环,配合break或continue使用可以控制外层循环:
javascript
top: for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
if (i === 2 && j === 2) {
break top; // 跳出外层循环
}
console.log(i + ", " + j);
}
}
流程控制最佳实践
- 避免深度嵌套:过多的嵌套会降低代码可读性
- 使用适当的循环类型:根据场景选择for、while或for…of等循环
- 使用描述性变量名:使条件更加清晰
- 避免重复条件:将重复的条件提取为变量
- 考虑使用函数:将复杂的条件逻辑封装到函数中
常见错误
- 忘记使用花括号:当代码块只有一条语句时,花括号可以省略,但不建议这样做
- 赋值与比较混淆:使用
=(赋值)而不是==或===(比较) - 条件判断类型错误:不注意数据类型的比较,如
5 == "5"返回true - 无限循环:忘记更新循环变量,导致循环永远不会结束
继续学习:JavaScript函数
最后更新:2026-02-08