JavaScript For 循环

循环语句就是能够重复执行相同操作的语句。作为 JavaScript 基本结构,循环语句在应用开发种经常使用。与 if 语句一样,循环语句也由两种基本语法形式:for 语句和 while 语句。


JavaScript 循环

假如您需要运行代码多次,且每次使用不同的值,那么循环(loop)相当方便使用。

通常我们会遇到使用数组的例子,不需要这样写:

  1. text += cars[0] + "<br>";
  2. text += cars[1] + "<br>";
  3. text += cars[2] + "<br>";
  4. text += cars[3] + "<br>";
  5. text += cars[4] + "<br>";
  6. text += cars[5] + "<br>";

您能够这样写:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1>JavaScript 循环</h1>
  5. <p id="demo">
  6. <script>
  7. var cars = ["宝马", "沃尔沃", "保时捷", "福特", "玛莎拉蒂", "奥迪"];
  8. var text = "";
  9. var i;
  10. for (i = 0; i < cars.length; i++) {
  11. text += cars[i] + "<br>";
  12. }
  13. document.getElementById("demo").innerHTML = text;
  14. </script>
  15. </body>
  16. </html>

不同类型的循环

JavaScript 支持不同类型的循环:

  • for - 多次遍历代码块
  • for/in - 遍历对象属性
  • while - 当指定条件为 true 时循环一段代码块
  • do/while - 当指定条件为 true 时循环一段代码块

For 循环

for 循环是在您希望创建循环时经常使用的工具。for 语句要比 while 语句简洁,因此更受编程者喜爱。

for 循环的语法如下:

  1. for (语句 1; 语句 2; 语句 3) {
  2. 要执行的代码块
  3. }

语句 1 在循环(代码块)开始之前执行。

语句 2 定义运行循环(代码块)的条件。

语句 3 会在循环(代码块)每次被执行后执行。

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1>JavaScript 循环</h1>
  5. <p id="demo">
  6. <script>
  7. var text = "";
  8. var i;
  9. for (i = 0; i < 5; i++) {
  10. text += "The number is " + i + "<br>";
  11. }
  12. document.getElementById("demo").innerHTML = text;
  13. </script>
  14. </body>
  15. </html>

从上面的代码中,您可以了解到:

  • 语句 1 在循环开始之前设置了一个变量(var i = 0)。
  • 语句 2 定义运行循环的条件(i 必须小于 5)。
  • 语句 3 会在代码块每次执行之后对值进行递增(i++)。

语句 1

通常,您会使用语句 1 来初始化循环中所使用的的变量(i = 0)。

但情况并不总是这样,JavaScript 不会在意。语句 1 是可选的。

您可以在语句 1 中初始化多个值(由逗号分隔):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">
  5. <script>
  6. var cars = ["宝马", "奔驰", "保时捷", "玛莎拉蒂"];
  7. var i, len, text;
  8. for (i = 0, len = cars.length, text = ""; i < len; i++) {
  9. text += cars[i] + "<br>";
  10. }
  11. document.getElementById("demo").innerHTML = text;
  12. </script>
  13. </body>
  14. </html>

而且您还可以省略语句 1(比如在循环开始前设置好值):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">
  5. <script>
  6. var cars = ["宝马", "奔驰", "保时捷", "玛莎拉蒂"];
  7. var i = 2;
  8. var len = cars.length;
  9. var text = "";
  10. for (; i < len; i++) {
  11. text += cars[i] + "<br>";
  12. }
  13. document.getElementById("demo").innerHTML = text;
  14. </script>
  15. </body>
  16. </html>

语句 2

通常语句 2 用于计算初始变量的条件。

但情况并不总是这样,JavaScript 不会在意。语句 2 也是可选的。

如果语句 2 返回 true,那么循环会重新开始,如果返回 false,则循环将结束。

如果省略语句 2,那么必须在循环中提供一个 break。否则循环永远不会结束。请在下一章阅读更多关于 break 的内容。


语句 3

通常语句 3 会递增初始变量的值。

但情况并不总是这样,JavaScript 不会在意。语句 3 也是可选的。

语句 3 可做任何事情,比如负递增(i—),正递增(i = i + 15),或者任何其他事情。

语句 3 也可被省略(比如当您在循环内递增值时):

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <p id="demo">
  5. <script>
  6. var cars = ["宝马", "奔驰", "保时捷", "玛莎拉蒂"];
  7. var i = 0;
  8. var len = cars.length;
  9. var text = "";
  10. for (; i < len; ) {
  11. text += cars[i] + "<br>";
  12. i++;
  13. }
  14. document.getElementById("demo").innerHTML = text;
  15. </script>
  16. </body>
  17. </html>

For/In 循环

JavaScript for/in 语句遍历对象的属性:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h1>JavaScript 循环</h1>
  5. <p>for/in 语句循环遍历对象的属性。</p>
  6. <p id="demo">
  7. <script>
  8. var txt = "";
  9. var person = {fname:"Bill", lname:"Gates", age:62};
  10. var x;
  11. for (x in person) {
  12. txt += person[x] + " ";
  13. }
  14. document.getElementById("demo").innerHTML = txt;
  15. </script>
  16. </body>
  17. </html>

While 循环

我们将在下一章学习 while 循环和 do/while 循环。