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语句用于标记循环,配合breakcontinue使用可以控制外层循环:

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

流程控制最佳实践

  1. 避免深度嵌套:过多的嵌套会降低代码可读性
  2. 使用适当的循环类型:根据场景选择for、while或for…of等循环
  3. 使用描述性变量名:使条件更加清晰
  4. 避免重复条件:将重复的条件提取为变量
  5. 考虑使用函数:将复杂的条件逻辑封装到函数中

常见错误

  1. 忘记使用花括号:当代码块只有一条语句时,花括号可以省略,但不建议这样做
  2. 赋值与比较混淆:使用=(赋值)而不是=====(比较)
  3. 条件判断类型错误:不注意数据类型的比较,如5 == "5"返回true
  4. 无限循环:忘记更新循环变量,导致循环永远不会结束

继续学习:JavaScript函数

最后更新:2026-02-08