1、說起迴圈,我麼有基本的for迴圈,類似於這樣用:
var arr = [1,2,3];
//迴圈輸出
for(var i = 0; i < arr.length; i++)
但是這有乙個問題,我們迴圈遍歷,不僅僅是陣列,如果遍歷物件怎麼辦?這就需要我們了解我們的另乙個迴圈方式,for…in
2、for…in迴圈方式的提出,是針對解決物件的遍歷問題。一般我們這樣使用:
var
object = ;
//迴圈輸出
for(var i in
object)
輸出的結果是:
但是隨著大量的programmer的使用,發現乙個問題,陣列的本質也是乙個物件,我們給陣列這個物件新增一條屬性,會出現什麼問題呢?(這裡最大的問題就是使用for in迴圈出現length不匹配的問題,下標也會出現錯亂);
例項如下:
var arr = [1,2,3];
arr.name = 'mapbar_front';
for(var i in arr)
console.log(arr.length);//
3,但是長度應該是4才對
console.log(arr[3]);//
undefined
這裡的輸出結果如下所示:
面對解決這樣的問題,我們其實很少使用for…in迴圈
一般而言,我們使用的是乙個陣列的foreach方法,基本的使用方式是這樣的:
var arr = [1,2,3];
arr.name = 'mapbar_front';
arr.foreach((item)=>);
//1,2,3.不包含'mapbar_front'
3、foreach是作為陣列的一種解決方案,但是我們的遍歷應該有一種合適的語法結構來解決,而不是依靠某乙個方法。這就是今天的主角for…of迴圈。(完美的解決了前面所提出的問題);
基本的使用方式是:
var a = ['a', 'b', 'c'];
var s = new set(['a', 'b', 'c']);
var m = new map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a)
for (var x of s)
for (var x of m)
for…of 迴圈的好處是能夠迴圈任何型別的物件,包括array、map、set型別等等。(在新的es語法規則中,這三種型別被統一描述為iterable型別。) JavaScript的迴圈結構
迴圈結構 1迴圈結構的概念 先看看生活中的一些場景 1 食堂阿姨打菜 接過顧客的餐盤 詢問菜品 打菜 遞迴餐盤,重複以上過程,直到所有顧客的菜都打完了。2 快遞員送快遞 檢視送件位址 趕往目的地 告知收件人 收件人簽收 交快遞件,重複以上過程,直到所有需要的快遞都處理完了。以上場景都有乙個共同的特點...
JavaScript的迴圈語句
01 for語句 for迴圈是一種前測試迴圈語句,但它具有在執行迴圈之前初始化變數和定義迴圈後要執行的 的能力。以下是for迴圈的語法 初始化表示式,控制表示式,迴圈後表示式 for initialization expression post loop expression while condi...
javascript中的迴圈
do while語句 var i 0 dowhile i 10 console.log i do while語句至少執行一次,為啥?因為他是先執行邏輯 後判斷,這就意味著第一次迴圈無論條件是否成立。都已經執行了一次邏輯 當條件成立的時候接著迴圈,條件不成立那就跳出迴圈,常用於至少執行一次的迴圈中 w...