2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: cf1111c1c11feddfaeb5bdef
|
2020-12-16 00:37:30 -07:00
|
|
|
|
title: for 循环
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 1
|
2020-04-29 18:29:13 +08:00
|
|
|
|
videoUrl: 'https://scrimba.com/c/c9yNVCe'
|
|
|
|
|
forumTopicId: 18219
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你可以使用循环多次执行相同的代码。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
JavaScript 中最常见的循环就是 “`for循环`”。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
for循环中的三个表达式用分号隔开:
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`for ([初始化]; [条件判断]; [计数器])`
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`初始化`语句只会在执行循环开始之前执行一次。它通常用于定义和设置你的循环变量。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`条件判断`语句会在每一轮循环的开始执行,只要条件判断为`true`就会继续执行循环。当条件为`false`的时候,循环将停止执行。这意味着,如果条件在一开始就为`false`,这个循环将不会执行。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`计数器`是在每一轮循环结束时执行,通常用于递增或递减。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
在下面的例子中,先初始化`i = 0`,条件`i < 5`为真,进入第一次循环,执行大括号里的代码,第一次循环结束。递增`i`的值,条件判断,就这样依次执行下去,直到条件判断为假,整个循环结束。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
var ourArray = [];
|
|
|
|
|
for (var i = 0; i < 5; i++) {
|
|
|
|
|
ourArray.push(i);
|
|
|
|
|
}
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
最终`ourArray`的值为`[0,1,2,3,4]`.
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --instructions--
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
使用`for`循环把从 1 到 5 添加进`myArray`中。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
你应该使用`for`循环。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert(code.match(/for\s*\(/g).length > 1);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
`myArray`应该等于`[1,2,3,4,5]`。
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.deepEqual(myArray, [1, 2, 3, 4, 5]);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-04-29 18:29:13 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|