十一. for of
const fruits = ['Apple','Banana','Orange','Mango'];
es5: 可读性差
for(let i=0; i < fruits.length; i ++){
console.log(fruits[i]);
}
// Apple
// Banana
// Orange
// Mango
es6箭头函数:
一. 注释: 缺点 不能终止或跳过循环 以下按钮会报错
fruits.forEach(fruit =>{
console.log(fruit);
})
fruits.forEach(fruit =>{
if(fruit === 'Orange'){
break;
}
console.log(fruit);
})
fruits.forEach(fruit =>{
if(fruit === 'Orange'){
continue;
}
console.log(fruit);
})
二. 注释: 会把原型上的属性跟内容也返回回来
for (let index in fruits){
console.log(fruits[index]);
}
Array.prototype.first = function(){
return this[0];
}
const fruits = ['Apple', 'Banana', 'Orange', 'Mango'];
fruits.describe = 'My favorite fruits';
for (let index in fruits){
console.log(fruits[index]);
}
// Apple
// Banana
// Orange
// Mango
// My favorite fruits
function(){
return this[0];
}
三:终极版,解决了上面循环的缺陷 不会打印出原型上一些属性,支持跳出循环
for(let fruit of fruits){
console.log(fruit);
}
// Apple
// Banana
// Orange
// Mango
for(let fruit of fruits){
if(fruit === 'Orange'){
break; //终止
}
console.log(fruit); // Apple Banana
}
for(let fruit of fruits){
if(fruit === 'Orange'){
continue; //跳出循环
}
console.log(fruit); // Apple Banana Mango
}

浙公网安备 33010602011771号