for循环
循环代码块一定的次数
语法:
for (语句 1; 语句 2; 语句 3){被执行的代码块}
语句 1 (代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
实例
var cars=["BMW","Volvo","Saab","Ford"];
for (var i=0;i");}
for in 循环(es3)
定义和用法
for/in 语句用于循环对象属性。
循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。
语法
for (var in object) { 执行的代码块}
var 必须。指定的变量可以是数组元素,也可以是对象的属性。
object 必须。指定迭代的的对象。
实例
var obj = {a:1, b:2, c:3};
for ( prop in obj) {
console.log("obj." + prop + " = " + obj[prop]);
}
//obj.a = 1,obj.b = 2,obj.c = 3
不足:
for … in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。
当我们手动给Array对象添加了额外的属性后,for … in循环将带来意想不到的意外效果:
var a = [
'A'
,
'B'
,
'C'
];a.name =
'Hello'
;
for
(var x
in
a) { alert(x);
//
'0'
,
'1'
,
'2'
,
'name'
}
for … in循环将把name包括在内,但Array的length属性却不包括在内。
不推荐用for-in来循环一个数组,因为,不像对象,数组的index跟普通的对象属性不一样,是重要的数值序列指标。
总之,for–in是用来循环带有字符串key的对象的方法。
forEach循环(es5)
定义和用法
forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
注意: forEach() 对于空数组是不会执行回调函数的。
语法
array.forEach(function(currentValue, index, arr), thisValue)
currentValue |
必需。当前元素 |
index |
可选。当前元素的索引值。 |
arr |
可选。当前元素所属的数组对象。 |
实例
var numbers = [65, 44, 12, 4];
numbers.forEach(myFunction);
function myFunction(item,index,arr) {
arr[index] = item* 10;
}
console.log(numbers) ;
不足:
但这种方法也有一个小缺陷:你不能使用 break语句中断循环,也不能使用 return语句返回到外层函数。
for of循环(es6)
这是最简洁、最直接的遍历数组元素的语法
for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name
这个方法避开了for-in循环的所有缺陷
与forEach()不同的是,它可以正确响应break、continue和return语句
语法:
for (var value of myArray) { console.log(value);}
实例:
循环数组
let iterable = [10, 20, 30];for (let value of iterable) { console.log(value);}
// 10,20,30
循环字符串
let iterable = "boo";for (let value of iterable) { console.log(value);}
//"b","o","o"
循环一个Map()和循环一个 Set()....(es6,待更新)