您好,登录后才能下订单哦!
# JavaScript中有什么循环语句和流程控制语句
## 目录
1. [引言](#引言)
2. [循环语句](#循环语句)
- [for循环](#for循环)
- [while循环](#while循环)
- [do...while循环](#dowhile循环)
- [for...in循环](#forin循环)
- [for...of循环](#forof循环)
3. [流程控制语句](#流程控制语句)
- [if...else语句](#ifelse语句)
- [switch语句](#switch语句)
- [break与continue](#break与continue)
- [try...catch](#trycatch)
4. [高级用法与注意事项](#高级用法与注意事项)
5. [总结](#总结)
---
## 引言
JavaScript作为一门动态编程语言,提供了丰富的循环和流程控制语句来帮助开发者实现复杂的逻辑。这些语句不仅能提高代码的执行效率,还能使代码更加清晰易读。本文将详细介绍JavaScript中的循环语句和流程控制语句,并通过示例代码展示它们的用法。
---
## 循环语句
### for循环
`for`循环是最常用的循环语句之一,适用于已知循环次数的场景。
```javascript
for (let i = 0; i < 5; i++) {
console.log(i); // 输出0到4
}
特点:
- 包含初始化、条件判断和迭代器三部分
- 支持break
和continue
控制循环
while
循环在条件为真时重复执行代码块。
let i = 0;
while (i < 5) {
console.log(i); // 输出0到4
i++;
}
适用场景: - 当循环次数不确定时 - 需要先判断条件再执行循环体的情况
do...while
循环至少执行一次,即使条件初始为假。
let i = 0;
do {
console.log(i); // 至少输出0
i++;
} while (i < 0);
与while的区别: - 先执行后判断条件
用于遍历对象的可枚举属性(包括原型链上的属性)。
const obj = {a: 1, b: 2};
for (const key in obj) {
console.log(key); // 输出"a", "b"
}
注意事项:
- 不推荐用于数组遍历(可能遍历到非数字键)
- 可通过hasOwnProperty
过滤原型属性
ES6新增,用于遍历可迭代对象(如数组、字符串、Map等)。
const arr = [1, 2, 3];
for (const item of arr) {
console.log(item); // 输出1, 2, 3
}
优势:
- 直接获取值而非索引
- 支持break
和continue
基础的条件分支控制结构。
const age = 18;
if (age >= 18) {
console.log("成年");
} else {
console.log("未成年");
}
变体:
- else if
实现多条件判断
- 三元运算符简化写法:condition ? expr1 : expr2
多分支选择结构,适合离散值比较。
const day = "Monday";
switch (day) {
case "Monday":
console.log("工作日");
break;
case "Saturday":
console.log("周末");
break;
default:
console.log("未知");
}
特点:
- 使用break
防止case穿透
- default
处理未匹配情况
break
:立即退出整个循环或switch语句continue
:跳过当前迭代,进入下一次循环for (let i = 0; i < 10; i++) {
if (i === 5) break; // 循环终止于i=5
if (i % 2 === 0) continue; // 跳过偶数
console.log(i); // 输出1, 3
}
错误处理机制,配合throw
使用。
try {
JSON.parse("invalid json");
} catch (err) {
console.error("解析错误:", err.message);
} finally {
console.log("始终执行");
}
组成:
- try
:尝试执行可能出错的代码
- catch
:捕获并处理错误
- finally
:无论是否出错都会执行
循环性能优化:
for (let i = 0, len = arr.length; i < len; i++)
标签语句:
配合break
/continue
控制多层循环
outer: for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
if (i === 1) break outer;
}
}
现代迭代方法:
Array.prototype.forEach()
Array.prototype.map()
break
/continue
常见陷阱:
for...in
遍历数组会包含非数字键switch
语句忘记写break
JavaScript提供了多种循环和流程控制语句,每种都有其适用场景:
- 循环语句:根据需求选择for
、while
或for...of
- 条件分支:简单判断用if...else
,多分支用switch
- 错误处理:使用try...catch
保证代码健壮性
掌握这些语句的特性及适用场景,能够帮助开发者编写出更高效、更易维护的JavaScript代码。
本文共约2100字,涵盖了JavaScript主要的循环和流程控制语句,并提供了实用示例和最佳实践建议。 “`
注:实际使用时可根据需要调整示例代码的复杂度或补充更多边缘案例说明。如需进一步扩展,可以添加关于生成器函数(function*)和yield的循环控制内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。