我所lforEach() 方法用於調用數組的每一個元素,並將元素傳遞給回調函數。數組
注意: forEach() 對於空數組是不會執行回調函數的。安全
示例代碼:函數
var arr = [4, 9, 16, 25]; arr.forEach(function(value, index) { console.log(index+': '+value+'\n'); });
結果以下:prototype
for/in 語句用於循環對象屬性。code
循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操做。對象
示例代碼:索引
var person = { name: 'jack', age: 18, gender: 'male' }; for(key in person) { console.log(key+': '+person[key]+'\n'); }
結果以下:字符串
須要注意的是,若是使用for in語句遍歷數組,可能會出現如下問題:原型
1. 索引爲字符串類型,不能直接進行幾何運算。回調函數
2. 遍歷順序有可能不是按照實際數組的內部順序。
3. 使用for in會遍歷數組全部的可枚舉屬性,包括原型。
以下所示:
var arr = [12, 43, 19]; Array.prototype.index = 110;//這裏的原型屬性也會被打印出來 for(var index in arr) { console.log(index+': '+arr[index]+'\n'); }
運行結果:
for of語句和for in 語句相比使用更方便,它是ES6新提出的遍歷數組的方式,
具體使用:
var arr = [12, 43, 19]; Array.prototype.index = 110;//此原型屬性不會被打印出來 for(var value of arr) { console.log(value+'\n'); }
結果以下:
綜述:foreach更多的用來遍歷數組,但使用比較複雜;for in 通常經常使用來遍歷
對象;for of 用來遍歷數組很是方便且比較安全。
若是以爲寫的不錯,能夠點個小小的贊或者關注我,若是有哪裏寫得很差,歡迎你們指出、