js循环与迭代,for...in和for...of区别

209 阅读1分钟

循环-> 做同一件事; 有这么多种循环的方法,那便是在不同的情况下选择合适的循环方法。

1.for循环

这个大都知道的就不提及基本用法了,说一下特别的地方,甚至就用不到。

  • 如果条件判断表达式被省略,那么会默认为true
  • 平常常见到的 ++,这个是更新表达式
  • 一次循环完成后会回到条件判断表达式

2.do...while

do
  statement
while (condition);

statement会被先执行一次,如果只有一条语句,可以省略{}代码块,反之加上。

3.while

while (condition)
  statement

同样一条语句,可以省略{}

4.label语句(不完整)

label :
   statement

这个label只是标识符,你可以起任何你想要的名称。label语句用来标识一个循环。

markLoop:
while (theMark == true) {
   doSomething();
}

5.for...in

注意:什么是可枚举,迭代器

循环一个指定变量来循环一个对象可枚举的属性(拥有迭代器的属性), 相当于将一个对象转存到一个个变量中(多少属性就有多少个变量)你可以访问变量的属性得到值。

for (variable in object) {
  statements
}

6.for...of

语法相同

[for...of] 语句在[可迭代对象](包括[Array]、[Map]、[Set]、[arguments] 等等)上创建了一个循环,对值的每一个独特属性调用一次迭代。

for...in 和 for...of的区别就是在循环遍历时,

  • for...in 会得出索引
  • for...of 会的出值