在 JavaScript 中,循环语句指的是在 “满足某个条件下” 循环反复地执行某些操作的语句。这就很有趣了,现在像 1 + 2 + 3 + ... + 100、1 + 3 + 5 + ... + 99 这样的计算就可以轻松用程序实现了。
在 JavaScript 中,循环语句共有以下 3 种。
- while 循环。
- do while 循环。
- for 循环。
JavaScript while 语法
在 JavaScript 中,while 语句是最简单的循环语句。
语法:
while (条件) {
// 当条件为true时,循环执行
}说明:
如果 “条件” 返回为 true,则会执行大括号 “{}” 内部的程序。当执行完大括号 “{}” 内部的程序后,会再次判断 “条件”。如果条件依旧还是 true,则会继续重复执行大括号中的程序……循环执行直到条件为 false 才结束整个循环,然后再接着执行 while 语句后面的程序。
在使用 while 循环时,小伙伴们需要清楚以下 2 点。
- 循环内部的语句一定要用 “{}” 括起来,即使是一条语句也要。
- 循环内部中,一定要有可以结合 “判断条件” 来让循环可以退出的语句,一般来说都是 i++、i+=2 之类的。如果没有 “判断条件” 和 “退出语句”,循环就会一直运行下去,变成一个 “死循环”。要是这样的话,浏览器崩溃了,你崩溃了,老板也跟着崩溃了……
- while 循环更适合用于执行未知次数的重复操作。如果是知道要执行多少次重复操作,使用 “for 循环” 更为合适。
JavaScript while 示例
接下来,我们通过几个简单的例子来讲解 JavaScript while 循环是如何使用的。
示例 1:计算 1 + 2 + 3 + … + 100 的值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
let n = 1;
let sum = 0;
// 如果n小于等于100,则会执行while循环
while (n <= 100) {
sum = sum + n;
n = n + 1;
}
console.log("1 + 2 + 3 + … + 100 = " + sum);
</script>
</body>
</html>运行结果如下。
1 + 2 + 3 + … + 100 = 5050分析:
变量 n 用于递增(也就是不断加 1),初始值为 1。变量 sum 用于求和,初始值为 0。对于 while 循环,我们一步步来给大家分析一下。
第 1 次执行 while 循环,sum = 0 + 1,n = 2。
第 2 次执行 while 循环,sum = 0 + 1 + 2,n = 3。
第 3 次执行 while 循环,sum = 0 + 1 + 2 + 3,n = 4。
……
第 100 次执行 while 循环,sum = 0 + 1 + ... + 100,n = 101。
记住,每一次执行 while 循环之前,我们都需要判断条件是否满足。如果满足,则继续执行 while 循环;如果不满足,则退出 while 循环。
当第 101 次执行 while 循环时,由于此时 n = 101,而判断条件 n <= 100 返回 false,此时 while 循环不再执行(也就是退出 while 循环)。由于退出了 while 循环,接下来就不会再循环执行 while 中的程序,而是执行 while 后面的 console.log() 了。
示例 2:计算 1 + 3 + 5 + … + 99 的值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
let n = 1;
let sum = 0;
// 如果 n 小于 100,则会执行 while 循环
while (n < 100) {
sum += n; // 等价于 sum = sum + n;
n += 2; // 等价于 n = n + 2;
}
console.log("1 + 3 + 5 + … + 99 = " + sum);
</script>
</body>
</html>运行结果如下。
1 + 3 + 5 + … + 99 = 2500分析:
在这个例子中,将 while 循环的条件 “n < 100” 改为 “n <= 99” 也是一样的,因为两个条件是等价的。当然,上一个例子 “n <= 100” 其实也等价于 “n < 101”。小伙伴们可以思考一下为什么?
此外,sum += n; 等价于 sum = sum + n;,而 n += 2; 等价于 n = n + 2;。在实际开发中,我们更多使用的是简写形式,大家一定要熟悉这种赋值运算符的简写形式。
至于 while 循环是怎么进行的,可以对比一下上一个例子的具体流程,自己理清一下思路,慢慢消化一下,很简单。
示例 3:死循环
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script>
while (true) {
alert("我也是醉了");
}
</script>
</body>
</html>运行结果如下图所示。

分析:
这就是最简单的 “死循环”,因为判断条件一直为 true,因此会一直执行 while 循环,然后会不断弹出对话框。小伙伴可以自行测试一下,会发现无法停止对话框继续弹出。想要关闭浏览器,可以按下快捷键 “Shift + Ctrl + ESC” ,使用任务管理器来关闭浏览器。
在实际开发中,我们要尽量避免 “死循环” 的出现,因为这是很低级的一个错误了。
