先定义一个测试用的数组:
const peoples = [ 'Tom', 'Jerry', 'Mario', 'Yoshi'];
最基本的for循环
通过定义一个索引值 i 来循环:
for(let i = 0; i < peoples.length; i++) {
console.log(peoples[i]); //Tom Jerry Mario Yoshi
}
数组forEach()方法
peoples.forEach(people => {
console.log(people); //Tom Jerry Mario Yoshi
})
注意:
1️⃣ forEach() 是数组特有的方法
2️⃣ forEach() 不支持break与continue:
peoples.forEach(people => {
if (people === 'Mario') {
break;
}
console.log(people); //SyntaxError
})
for in 循环
for(let index in peoples) {
console.log(peoples[index]); //Tom Jerry Mario Yoshi
}
注意:
1️⃣ for in 循环 的值是属性名而不是属性值,数组的元素是属性值,而索引才是属性名
2️⃣ for in 循环 会遍历所有可枚举的属性:
//添加一个新属性:
peoples.sex = 'man';
//数组原型对象添加方法:
Array.prototype.fn = function() {
return this[0];
}
for(let index in peoples) {
console.log(peoples[index]); //Tom Jerry Mario Yoshi
}
ES6:for of 循环
```javascript
for(let people of peoples) {
console.log(people); //Tom Jerry Mario Yoshi
}
for of 循环 可以说是综合了以上循环的优点,弥补了缺点,综合了以上书写的简便,也不会像for in 循环 遍历所有可枚举的属性
注意:
for of 循环 有一个致命缺点就是他 不适用于对象