详解for循环结构
格式:boolean类型
for(初始化语句;判断条件语句;控制条件语句){
//循环体结构
}
执行顺序:
1.先执行初始化语句,
2.然后执行判断语句,看结果是true 还是false ,如果是true 则继续执行, 如果是false 则循环结束。
3.执行循环体语句
4.执行控制条件语句
5.回到步骤2,继续
<script>
var j=5;
//此时 当i=0的时候 ,判断i是否小于j, 如果是true ,则输出i
//输出i之后, 执行i++ 再次判断i是否小于j , 如果是true 则输出i , 如此循环 直到是false 则结束循环
//i<j不成立的时候 就是false
for(var i=0;i<j;i++){
console.log(i);
}
</script>
输出结果:
0
1
2
3
4
JS是自上而下的执行顺序 所以当我们在循环外面再输出时 结果也是不一样的。
<script>
var j=5;
for(var i=0;i<j;i++){
console.log(i);//0 1 2 3 4
}
//此时的log输出的是5 , 是因为当i=5的时候 , i<j就不成立 就会退出for循环 ,所以最后就会输出i=5
console.log(i);//5
</script>
输出结果:
0
1
2
3
4
5( 注意:此时的5是循环外输出的)
for循环的特殊写法
-
省略 初始化表达式 在循环开始之前已经存在循环变量
<script> //此时的 vari=3相当于for的初始化 var i=3; for(;i<4;i++){ console.log(i);//3 } </script>
-
省略 条件改变表达式 在循环体中必须提供循环变量的改变表达式
<script> var i=3; for(;i;){ i-- console.log(i);//3 2 1 } </script>
-
省略 条件, 在循环体中提供跳出循环的条件
<script> var i=6; for(;;){ i-- console.log(i); //5 4 3 2 1 if(i==1){ break;//结束整个循环 } } </script>
-
三个语句都省略 ,且在循环体中没有补充,就是死循环
while(true){ // 死循环 if(a){ break; } }
循环 for - in
取出对象的所有属性名,每次循环将其中一个属性名赋值给变量prop,运行循环体
语法:
for(var prop in 对象){
prop;//对象的属性名
对象[prop];//对象的属性值
}
例子:
<script>
var arr={
name:'huahua',
age:12,
sex:'女',
address:{
pro:'中国',
city:'贵州',
}
}
for(var k in arr){
console.log(k,arr[k]);
}
</script>
``
输出结果: