JS之for...in和for...of
for...in输入键;
for...in
循环有几个缺点。
- 数组的键名是数字,但是
循环是以字符串作为键名“0”、“1”、“2”等等。for...in
-
循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。for...in
- 某些情况下,
循环会以任意顺序遍历键名。for...in
总之,
for...in
循环主要是为遍历对象而设计的,不适用于遍历数组。
for...of输出值;
for...of
循环相比上面几种做法,有一些显著的优点。
- 有着同
一样的简洁语法,但是没有for...in
那些缺点。for...in
- 不同于
方法,它可以与forEach
、break
和continue
配合使用。return
- 提供了遍历所有数据结构的统一操作接口。
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
}