while循环
语法
while (条件)
{
需要执行的代码
}
案例
1 | while (i<5) |
do/while 循环
do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。
语法
do
{
需要执行的代码
}
while (条件);
案例
下面的例子使用 do/while 循环。该循环至少会执行一次,即使条件是 false,隐藏代码块会在条件被测试前执行:1
2
3
4
5
6do
{
x=x + "The number is " + i + "<br>";
i++;
}
while (i<5);
break和continue
break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话):
1 | for (i = 0; i < 10; i++) { |
continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。1
2
3
4
5for (i = 0; i <= 10; i++) {
if (i == 3) continue;
console.log(i)
}
// 0 1 2 4 5 6 7 8 9 10
for和for in
在遍历数组上的异同
for循环和for in循环都可以遍历获取到数组的内容;
for循环获取数组下标的typeof类型为number;
for in 循环获取数组下标的typeof类型为string;1
2
3
4
5
6
7
8
9
10
11var arr = ['a','b','c'];
for(var i = 0;i < arr.length;i++){
console.log(typeof(i));//number
console.log(arr[i]);//a,b,c
}
var att = ['a','b','c'];
for(var j in att){
console.log(typeof(j));//string
console.log(att[j]);//a,b,c
}
在遍历对象上的异同
for循环不能用于循环对象,因为for循环无法获取obj.length,所以for循环只能用于数组操作;
for in 循环可以获取对象的键值,可以操作数组,还可操作对象;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16var obj = new Object({
name:"Simon",
age:"16",
city:"BJ"
});
console.log(obj.length);//undefined
for(var i = 0;i < obj.length;i++){
console.log(i);//空的
console.log(obj[i]);//空的
}
for(var j in obj){
console.log(j);//name,age,city
console.log(obj[j]);//simon,16,BJ
}
为什么不建议for in 循环数组
如果原生Array类被其他的js脚本库进行了原型扩展,那么用for in遍历扩展后的Array对象的逻辑将与遍历原生Array对象的逻辑发生差异。
1 | var arr = [1] |