關於for循環的簡單概括

關於for循環,我經常會混淆,在此作一下梳理。數組

一、for循環

最原始的遍歷,得到數組裏的值。函數

var arr1 = [1, 2, 3];
for(var i = 0 ; i< arr1.length; i++){
  console.log(arr1[i]);
}
二、for……in

for……in,遍歷對象的屬性名稱,鍵名key。在數組中,每一個元素的下標索引被視爲數組的屬性名稱。因此用for……in遍歷數組時,實際上得到的值是索引值。code

var arr = ["Hello", "world"];
arr.name = "index";
for (var k in arr){
  console.log(k);   // 0,1,name
  console.log([arr[k]); // 屬性對應的值 "Hello", "world"
}
console.log(arr.length); // 2

從結果,咱們能夠看到,當你爲arr添加一個新的屬性名:name時,遍歷時,會把這個屬性包括在內,可是,arr.length仍是原來的。對象

三、for……of(ES6新增的循環語法)

for……of,遍歷對象的屬性值,鍵值value。它只循環集合自己的元素索引

var arr = ["Hello", "world"];
arr.name = "index";
for (var k in arr){
  console.log(k);   // Hello, world
}
console.log(arr.length); // 2

同時,for……of支持遍歷其餘集合,如字符串、Set和Map對象。再有,它不一樣於forEach,可使用 break 語句跳出循環,也可使用 continue 和 return 語句。字符串

四、forEach

forEach實際上是for循環的簡化版,適合於循環次數未知狀況下使用。foreach 方法沒辦法使用 break 語句跳出循環,也沒法使用return從函數體內返回。console

相關文章
相關標籤/搜索