1、for循環javascript
一、for - 循環代碼塊必定的次數java
遍歷數組最經常使用到的for循環,是最爲熟知的一種方法數組
for (var i=0; i<5; i++) { x=x + "The number is " + i + "<br>"; }
從上面的例子中,能夠看到:dom
Statement 1 在循環開始以前設置變量 (var i=0)。函數
Statement 2 定義循環運行的條件(i 必須小於 5)。測試
Statement 3 在每次代碼塊已被執行後增長一個值 (i++)。優化
二、for/in - 循環遍歷對象的屬性ui
var person={fname:"John",lname:"Doe",age:25}; for (x person) { txt=txt + person[x]; }
in
三、while - 當指定的條件爲 true 時循環指定的代碼塊this
若是忘記增長條件中所用變量的值,該循環永遠不會結束spa
while (i<5) { x=x + "The number is " + i + "<br>"; i++; }
四、do/while - 一樣當指定的條件爲 true 時循環指定的代碼塊
do/while 循環是 while 循環的變體。該循環會執行一次代碼塊,在檢查條件是否爲真以前,而後若是條件爲真的話,就會重複這個循環。循環至少會執行一次,即便條件是 false,隱藏代碼塊會在條件被測試前執行
do { x=x + "The number is " + i + "<br>"; i++; } while (i<5);
2、foreach 用於調用數組的每一個元素,並將元素傳遞給回調函數。注意: forEach() 對於空數組是不會執行回調函數的。
array.forEach(function(currentValue, index, arr), thisValue)
currentValue:必需。當前元素
index:可選。當前元素的索引值。
arr:可選。當前元素所屬的數組對象。
thisValue:可選。傳遞給函數的值通常用 "this" 值。
若是這個參數爲空, "undefined" 會傳遞給 "this" 值
#for 和 foreach 的總結
3、map
.map(callback(index,domElement))
.map()
要比.forEach()
執行速度更快。雖然我也說過執行速度不是咱們須要考慮的主要因素,可是他們都比for()
要更好用,那確定要選更優化的一個,可是map()方法不會對空數組進行檢測。
第二,.forEach()
的返回值並非array
var arr = [1, 2, 3]; console.log( arr.map(function(i){ return i+i; }) //鏈式風格 .sort() );// [2,4,6] console.log( arr.forEach(function(i){ return i+i; }) //接不起來,斷了 .sort() );//TypeError: Cannot read property 'sort' of undefined
#map 和 foreach的總結
一、map速度比foreach快
二、map會返回一個新數組,不對原數組產生影響,foreach不會產生新數組,
三、map由於返回數組因此能夠鏈式操做,foreach不能