- .更多语句,请访问 Statements
- for
-
.先初始化条件[只执行一次];初始化也可以在 for 外面进行
.再判定条件是否满足;如果满足就执行语句 statement;如果不满足,就结束
.条件变化,重复判断并决定继续还是结束
.省略判定条件后,变为无限循环
.如果要退出某次循环,继续/开始下一次循环,请使用 continue
.如果要退出/终止循环,请使用 break,同 switch语句
for (初始化;判定条件;条件变化) {
statement;
}
.基本使用;let 声明的变量 i 只能作用于for循环,具备块级作用域
for (let i = 0; i < 10; i++;) {
console.log(i);
}
.初始化放在 for 外面,变量 i 可以被其它访问;条件变化放在循环体内
let i = 0;
for (; i < 10;) {
console.log(i);
i++;
}
[] for - continue/break
查询数组中,是否存在小于18的数
- for...of
-
.用于遍历可迭代对象(如数组、字符串、Map、Set 等)的 值 - value
.不适用于对象
.支持中断:可以使用 break 和 continue 控制循环的中断和跳过
.可以把 forEach 看作是 for-of 的特例
let arr = [{ name: 'gl', age: 18 }, { name: 'gz', age: 20 }, { name: 'cq', age: 22 }]
for (const item of arr) {
console.log(item);
console.log(item['name']);
console.log(item['age']);
}
- for...in
-
.for-in 语句是一种精准的迭代语句,可以用来枚举/遍历对象的 key 属性 - 遍历的是 键 - key
.建议在使用 for-in 循环之前,先检测确认该对象的值不是 null 或 undefined
.控制语句中的 var/let 操作符不是必需的。但是,为了保证使用局部变量,推荐使用
.主要应用场合:Object、JSON
let obj = { "name": "guilin", "age": 18, "marriage": true };
for (let key in obj) {
console.log(key, obj[key]);
}
查看 window 对象
for (var propName in window) {
document.write(propName);
}
- while
-
.先判定条件再执行
.可以和 for 相互转化
.特情况下,可以使用死循环,如 WSN
while(1){
//
}
- do...while
-
.先执行1次再判定
.使用较少