For 循环/While 循环

# 循环语句 迭代语句又叫循环语句 ### 不同类型的循环 JavaScript 支持不同类型的循环: - for - 多次遍历代码块 - for/in - 遍历对象属性 - while - 当指定条件为 true 时循环一段代码块 - do/while - 当指定条件为 true 时循环一段代码块 # for 循环 ## for 语句 **语法** ``` for (expr1;expr2;expr3) { **语句块** } ``` ### 语句 1(expr1) 通常,您会使用语句 1 来初始化循环中所使用的的变量(i = 0)。 但情况并不总是这样,JavaScript 不会在意。语句 1 是可选的。 您可以在语句 1 中初始化多个值(由逗号分隔); ### 语句 2(expr2) 通常语句 2 用于计算初始变量的条件。 但情况并不总是这样,JavaScript 不会在意。语句 2 也是可选的。 如果语句 2 返回 true,那么循环会重新开始,如果返回 false,则循环将结束。 如果省略语句 2,那么必须在循环中提供一个 break。否则循环永远不会结束。请在下一章阅读更多关于 break 的内容。 ### 语句 3(expr3) 通常语句 3 会递增初始变量的值。 但情况并不总是这样,JavaScript 不会在意。语句 3 也是可选的。 语句 3 可做任何事情,比如负递增(i--),正递增(i = i + 15),或者任何其他事情。 语句 3 也可被省略(比如当您在循环内递增值时); for 循环语句的流程控制示意如图所示。 ::: hljs-center ![for 语句](http://m.biancheng.net/uploads/allimg/190829/6-1ZR9131340424.gif) ::: ### 实例 ``` for(let i = 0,i < 5,i++){ console.log(i); //输出0、1、2、3、4 } ``` ## for/in 语句 for/in 语句遍历对象的属性。 for/in 语句是 for 语句的一种特殊形式。 **语法** ``` for ( [var] variable in <object | array){ statement } ``` &emsp;&emsp;variable 表示一个变量,可以在其前面附加 var 语句,用来直接声明变量名。in 后面是一个对象或数组类型的表达式。在遍历对象或数组过程中,把或取的每一个值赋值给 variable。 &emsp;&emsp;然后执行 statement 语句,其中可以访问 variable 来读取每个对象属性或数组元素的值。执行完毕,返回继续枚举下一个元素,以此类推知道所有元素都被枚举为止。 &emsp;&emsp;<font color=red>对于数组来说,值是数组元素的下标;对于对象来说,值是对象的属性名或方法名。</font> 实例 ``` var person = {fname:"Bill", lname:"Gates", age:62}; var text = ""; var x; for (x in person) { text += person[x]; } console.log(text); //输出 BillGates62 ``` # while 循环 while 循环会一直循环代码块,只要指定的条件为 true。 ## while 语句 **语法** ``` while (条件) { 要执行的代码块 } ``` ::: hljs-center ![while 语句](http://m.biancheng.net/uploads/allimg/190829/6-1ZR91250535D.gif) ::: ## do/while语句 &emsp;&emsp;do/while 循环是 while 循环的变体。在检查条件是否为真之前,该循环会<font color=red>**执行至少一次**</font>,即使条件为 false,然后只要条件为真就会重复循环。 **语法** ``` do { 要执行的代码块 } while (条件); ``` ![do/while语句](http://m.biancheng.net/uploads/allimg/190829/6-1ZR913044O29.gif)