- .更多语句,请访问 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次再判定 .使用较少