我理解的foreach, for in, for of 之間的異同

我所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 用來遍歷數組很是方便且比較安全。

若是以爲寫的不錯,能夠點個小小的贊或者關注我,若是有哪裏寫得很差,歡迎你們指出、

相關文章
相關標籤/搜索