一:for
var arr=[1,2,3,4]; for(var i=0;i<arr.length;i++){ console.log(arr[i]); }//输出1234
优化 for(var i=0,len=arr.length;i<len;i++)
在数组较大优化明显
二:for in
var arr=[1,2,3,4]; arr.nm="hello" for(var i in arr){ console.log(arr[i]); }//输出1234hello
i会变成字符串类型
包括遍历私有属性
三:forEach
var arr=[1,2,3,4]; arr.forEach(function(item){//参数一般为两项arr项和arr索引 console.log(item); })//输出1234
声明式
forEach不支持return
四:for of
var arr=[1,2,3,4]; arr.nm="hello" for(var value of arr){ console.log(value); } //输出1234
既可以return也不遍历私有属性
值 of 数组
不能遍历对象
遍历对象用object.keys
let obj = {name:"zz",age:3}; //['name','age'] for( let val of Object.keys(obj)){ console.log(obj[val]); //.val是undefined val是name age 用obj[val] } //输出zz 3