JS中的循环有不少,今天咱们简单说一下for
循环及它和for in
循环的区别;javascript
for(设置初始值;设置循环执行的条件,控制循环次数;每一轮循环结束后处理的事情[步长累加]){
//=>循环体(每一轮循环要作的事情)
}
复制代码
-1).java
for (var i = 0; i < 5; i++) {
console.log(`本轮循环i的值是:${i}`);
}
console.log(`循环结束后,此时的i已经变为:${i}`);
/* * 初始值:i=0 * 0<5 成立的 * 0<3成立 i++ i=1 =>1 * i+=2 i=3 * 3<5 成立的 * 3<3 不成立 =>3 * i+=2 i=5 * 5<5 不成立 循环结束 */
复制代码
for (var i = 0; i < 5; i += 2) {
if (i < 3) {
i++;
}
console.log(`本轮循环i的值是:${i}`);//=> 1 , 3
}
console.log(`循环结束后,此时的i已经变为:${i}`);//=> 5
复制代码
var n = 10;
for (; n > 0;) {
if (n > 5) {
n -= 2;
} else {
n -= 3;
}
}
console.log(`循环结束后,此时的i已经变为:${n}`); //=>-2
复制代码
break
和continue
for (var i = 0; i < 5; i++) {
if (i > 3) {
// i=4 的时候,遇到了break,此时循环结束
break;
}
console.log(`本轮循环i的值是:${i}`); //=> 0 1 2 3
}
console.log(`循环结束后,此时的i已经变为:${i}`); //=>4
复制代码
for (var i = 0; i < 5; i++) {
if (i > 2) {
i += 1;
//=>i=3 i++ =>i=4 遇到continue:本轮循环结束(下面输出不执行,可是i++会执行)
continue;
}
console.log(`本轮循环i的值是:${i}`); //=>0 1 2
}
console.log(`循环结束后,此时的i已经变为:${i}`); //=>5
复制代码
for (var i = 0; i < 10; i++) {
if (i >= 2) {
i += 2;
continue;
}
if (i >= 6) {
i--;
break;
}
i++;
console.log(i); //=>1
}
console.log(i); //=>11
复制代码
for 循环
与for in
循环的区别及应用for 循环
应用length
属性,因此咱们可以知道循环次数,也能基于索引获取对应项,使用FOR循环
就能够解决var arr = [10, 20, 30, 40, 50];
for (var i = 0; i < arr.length; i++) {
// arr.length = 5
// 第一轮循环 i=0
arr[0]
// 第二轮循环 i=1
arr[1]
// ....
// 第五轮循环 i=4
arr[4]
每一轮循环i变量存储的值就是咱们当前这一轮想获取数组中当前项的索引
console.log(arr[i]);
}
复制代码
for in
循环遍历对象中的每个属性:咱们没法直接获取到对象中有多少个属性(ES6
中的Object.keys
除外),也就没法知道循环多少次,因此没法使用FOR
循环;真实项目中遍历对象咱们基于FOR IN
循环;数组
语法:bash
key
变量存储的是每一次循环的属性名
obj[key]
获取key
变量对象属性名的属性值var obj = {
name: '小明',
age: 18,
address: '北京市'
};
for (var key in obj) {
console.log(`本轮循环,属性名:${key},属性值:${obj[key]}`);
}
复制代码
注意:ui
FOR IN
遍历的时候,是优先按照从小到大
的机制遍历数字
属性的var obj = {
name: '小明',
age: 10,
10: 100,
0: 10
};
for (var key in obj) {
// 0 10 name age
console.log(`本轮循环,属性名:${key},属性值:${obj[key]}`);
}
复制代码