循环
# 循环
循环,可以帮你重复相同的工作。
# for循环
JavaScript
里面最常用的一种循环就是for
循环,如果我们要依次输出一个数组里面的值,那么我们当然可以依次使用alert
语句,如下所示:
var ary = [5, 6, 7, 8, 9];
alert(ary[0]);
alert(ary[1]);
alert(ary[2]);
alert(ary[3]);
alert(ary[4]);
2
3
4
5
6
这样就可以完成目标了,但是,如果这个数组里面有100
个对象,这样几乎就是不可能完成的(我是不会干这种傻事的,但是录入数据的人,,,可能经常干这种事,请不要对人家说这句话,更不要说是我说的)。
对于这种情况,我们用for语句来完成,如下:
for (var i = 0; i < 5; i++) {
alert(ary[i]);
}
2
3
我们可以看到,for
里面有三个语句,用分号隔开。第一句是在循环开始前执行的。中间一句是在每次循环前判断是否满足条件的,如果满足这个条件,就进行此次循环,否则退出。最后一句是在每次循环结束后进行的语句。也就是说,可以这样来写:
var i = 0;
for (; i < 5;) {
alert(ary[i]);
i++;
}
2
3
4
5
此处注意这么一点,大括号内声明的变量都算是局部变量,外面是不可以直接使用的,而且像上一个例子,for
后面的小括号里面声明的var i=0
也是局部变量,外面不能用。而这个例子的i
是在外面声明的,所以可以用。这种情况叫做变量的作用域,变量只在声明的作用域内有效。
还有,什么也没有的语句是空语句,也算是一个语句;;;;;;;;;;
中间的i<5
,这个语句其实也可以省略掉的,那么就会变成这样的情况:
var i = 0;
for (;;) {
if (i < 5) {
alert(ary[i]);
i++;
continue;
} else {
break;
}
}
2
3
4
5
6
7
8
9
10
遇到break
语句会直接跳出循环,遇到continue
语句会直接开始下一次循环。嗯,这样的话,for
就成了一个单纯的循环节。尽量不要这么自找麻烦的使用for
循环……
这种依次访问一个数组的每个数据的行为,我们叫做遍历,还可以使用这样的语句:
for (var i in ary) {
alert(ary[i]);
}
2
3
注意,这东西虽然看着简单,但是实在不太靠谱,尽量不要用。
# while循环
while
循环会在括号内条件为真时循环执行里面的代码,用法如下:
var i = 0;
while (i < 5) {
alert(ary[i]);
i++;
}
2
3
4
5
一样可以达到上面的效果。
另外,还可以先循环一次,再判断条件,这就是do while
循环,和while
循环一样,也是括号内条件成立的话就执行循环里面的代码,用法如下:
var i = 0;
do {
alert(ary[i]);
i++;
} while (i < 5);
2
3
4
5
注意,这里的while结束后要加分号。
break语句和continue语句一样可以使用在这两种循环里面。