天天看点

JS之for...in和for...ofJS之for...in和for...of

JS之for...in和for...of

for...in输入键;

for...in

循环有几个缺点。

  • 数组的键名是数字,但是

    for...in

    循环是以字符串作为键名“0”、“1”、“2”等等。
  • for...in

    循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。
  • 某些情况下,

    for...in

    循环会以任意顺序遍历键名。

总之,

for...in

循环主要是为遍历对象而设计的,不适用于遍历数组。

for...of输出值;

for...of

循环相比上面几种做法,有一些显著的优点。

  • 有着同

    for...in

    一样的简洁语法,但是没有

    for...in

    那些缺点。
  • 不同于

    forEach

    方法,它可以与

    break

    continue

    return

    配合使用。
  • 提供了遍历所有数据结构的统一操作接口。
JS之for...in和for...ofJS之for...in和for...of
var arr = ['a', 'b', 'c', 'd'];

for (let a in arr) {
    console.log(a); // 0 1 2 3
    console.log(arr[a]);// a b c d
}

for (let b of arr) {
    console.log(b); // a b c d
}      

继续阅读