JavaScript 的控制语句介绍 文章目录一、条件分支语句决策1. if...else if...else最常用2. switch...case多值匹配3. 三元运算符? :二、循环语句迭代1. for 循环计数循环2. while 循环条件前置3. do...while 循环条件后置4. for...in遍历对象的键5. for...of遍历可迭代对象的值三、跳转与异常处理语句1. break 和 continue循环控制2. return函数终止3. try...catch...finally异常捕获四、补充空值合并与可选链现代控制糖JavaScript 的控制语句主要分为三大类条件分支语句选择执行、循环语句重复执行和跳转/异常处理语句改变执行流。一、条件分支语句决策根据条件表达式的真假决定执行哪一段代码。1. if…else if…else最常用适用于复杂的区间判断或多条件组合。letscore85;if(score90){console.log(优秀);}elseif(score60){console.log(及格);// 输出此条}else{console.log(不及格);}2. switch…case多值匹配适用于变量值严格等于某个固定值的场景。注意每个 case 后必须加 break否则会“穿透”继续执行。letfruitapple;switch(fruit){casebanana:console.log(香蕉);break;caseapple:console.log(苹果);// 输出此条break;default: console.log(未知水果);}3. 三元运算符? :简化的条件赋值适合单行逻辑。letage20;lettypeage18?成年:未成年;//type成年二、循环语句迭代重复执行某段代码直到条件为 false。1. for 循环计数循环最经典的循环适合已知循环次数。for(let i0;i5;i){console.log(i);// 输出0,1,2,3,4}2. while 循环条件前置先判断条件再执行如果条件一开始为假则一次都不执行。letn3;while(n0){console.log(n);// 输出3,2,1n--;}3. do…while 循环条件后置letx0;do{console.log(x);// 输出0哪怕x0也会执行这一次 x;}while(x0);4. for…in遍历对象的键遍历对象可枚举的属性名不建议用于遍历数组会遍历到原型链上的属性。letobj{a:1, b:2};for(let keyinobj){console.log(key, obj[key]);// 输出 a1, b2}5. for…of遍历可迭代对象的值ES6 新增专门用于遍历数组、字符串、Set、Map 等直接获取值推荐用于数组。letarr[10,20,30];for(let value of arr){console.log(value);// 输出10,20,30}三、跳转与异常处理语句1. break 和 continue循环控制break立即终止整个循环跳出循环体。continue跳过本次循环立即进入下一次迭代。for(let i0;i5;i){if(i2)continue;//i2时不执行下面直接 iif(i4)break;//i4时彻底停止循环 console.log(i);// 输出0,1,3}2. return函数终止不仅仅用于返回值它还会立即终止当前函数的执行后续代码不再运行。functiontest(){return;// 函数在这里结束 console.log(这行永远不会执行);}3. try…catch…finally异常捕获用于捕获代码运行时的错误防止程序崩溃。finally 无论是否发生错误都会执行。try{letdataJSON.parse(无效的JSON);// 这里会抛错 console.log(data);}catch(error){console.log(捕获到错误, error.message);}finally{console.log(清理资源...);// 无论成功失败都会执行}四、补充空值合并与可选链现代控制糖虽然不算是传统的“语句”但在写条件判断时极其常用?.可选链判断前面的值是否存在避免报错 Cannot read properties of undefined。letuser{};console.log(user?.address?.city);// 输出 undefined不报错??空值合并只有当左侧是 null 或 undefined 时才返回右侧的值区别于 || 会把 0 或 ‘’ 也视为假。letcount0;console.log(count||10);// 输出10因为0是假值 console.log(count ??10);// 输出0因为0不是 null/undefined