JavaScript循环与控制语句详解
立即解锁
发布时间: 2025-08-20 01:26:58 阅读量: 2 订阅数: 5 


JavaScript入门与实践指南
# JavaScript 循环与控制语句详解
## 1. switch 语句中的 break 特性
在 JavaScript 中,`switch` 语句里若某个 `case` 语句代码下方没有 `break` 语句,执行会继续通过后续的 `case` 语句,直到遇到 `break` 语句或 `switch` 结束。例如:
```javascript
// 示例代码片段,假设存在 switch 结构
document.write("Too high!");
break;
default:
document.write("You did not enter a number between 1 and 5.");
break;
```
当把这段代码加载到浏览器中,输入不同数字进行测试,会发现其行为与预期一致。若 `case` 值为 1 的语句匹配,执行会继续到 `case 2` 下的 `break` 语句,这样就能为两个 `case` 执行相同代码,`case` 值为 4 和 5 的语句也可使用此技术。
## 2. 循环的概念与应用场景
循环是指在条件为真时重复执行一段代码。在 JavaScript 中,可通过 `while` 语句和 `for` 语句实现循环。以下是一些循环的应用场景:
- **绘制图表**:假设有一年中每个月的平均温度数据,要将这些数据绘制在图表上,绘制每个点所需的代码基本相同。此时使用循环就能避免重复编写 12 次相同代码,而是通过循环执行同一段代码 12 次,并依次使用数据系列中的下一项数据。
- **用户交互**:当用户持续点击“重新开始”按钮时,可能需要重复执行同一段代码,这时 `while` 语句就非常有用。
## 3. for 循环
### 3.1 for 循环的结构
`for` 语句可让我们重复执行一段代码一定次数。其语法如下:
```javascript
for ( loopCounter = 1; loopCounter <= 3; loopCounter++)
{
// execute this code
}
```
`for` 语句的逻辑分为三个部分,各部分用分号分隔:
- **初始化部分**:用于初始化循环计数变量,该部分在循环执行期间仅执行一次。例如 `var loopCounter = 1;`,若变量在代码前面已声明,则无需再次声明。
- **测试条件部分**:只要此测试条件评估为真,`for` 语句内的代码就会继续执行。每次循环结束后都会测试该条件,如 `loopCounter <= 3`。循环执行的次数通常称为迭代次数。
- **增量部分**:用于增加或减少循环测试条件中变量的值。例如 `loopCounter++` 是将 `loopCounter` 的值加 1,也可用于减少值,如从数组的最后一个元素向下计数到第一个元素。
### 3.2 for 循环的执行流程
1. 执行 `for` 语句的初始化部分。
2. 检查测试条件,若为真则继续,否则退出 `for` 语句。
3. 执行 `for` 语句后面代码块中的代码。
4. 执行 `for` 语句的增量部分。
5. 重复步骤 2 到 4,直到测试条件为假。
### 3.3 示例:华氏温度转换
以下是一个将华氏温度数组转换为摄氏温度的示例代码:
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<script type="text/javascript">
var degFahren = new Array(212, 32, -459.15);
var degCent = new Array();
var loopCounter;
for (loopCounter = 0; loopCounter <= 2; loopCounter++)
{
degCent[loopCounter] = 5/9 * (degFahren[loopCounter] - 32);
}
for (loopCounter = 2; loopCounter >= 0; loopCounter-- )
{
document.write("Value " + loopCounter + " was " + degFahren[loopCounter] +
" degrees Fahrenheit");
document.write(" which is " + degCent[loopCounter] +
" degrees centigrade<br />");
}
</script>
</body>
</html>
```
上述代码的执行步骤如下:
1. 声明所需变量:`degFahren` 数组存储华氏温度值,`degCent` 数组用于存储转换后的摄氏温度值,`loopCounter` 用于记录循环次数和数组索引。
2. 第一个 `for` 循环:初始化 `loopCounter` 为 0,检查测试条件 `loopCounter <= 2`,若为真则执行循环内代码,将华氏温度转换为摄氏温度并存储在 `degCent` 数组中,每次循环结束后 `loopCounter` 加 1,直到测试条件为假。
3. 第二个 `for` 循环:初始化 `loopCounter` 为 2,检查测试条件 `loopCounter >= 0`,若为真则执行循环内代码,将转换结果输出到页面,每次循环结束后 `loopCounter` 减 1,直到测试条件为假。
### 3.4 for 循环流程图
```mermaid
graph TD;
A[开始] --> B[初始化循环变量];
B --> C{测试条件是否为真};
C -- 是 --> D[执行循环代码块];
D --> E[执行增量部分];
E --> C;
C -- 否 --> F[结束];
```
## 4. for...in 循环
`for...in` 循环主要用于数组,后
0
0
复制全文
相关推荐










