1. 程式人生 > >javascript 迴圈語句

javascript 迴圈語句

javascript 有很多的迴圈語句,下邊我來總結並用個人的語言分析一下

For迴圈舉例:ES5 中就支援

例如在控制檯輸出0-99:

1:for(var i=0;i<100;i++){

        //  var i=0; 迴圈語句中所需變數的初始化

        // i<100;  迴圈條件,當變數不能滿足這個條件時,停止迴圈

        // i++  迴圈條件,變數自增或自減或其他,變數值不斷改變直到滿足上邊條件位置

        console.log(i)

    }

For in迴圈: ES5 中就支援,可取出陣列中所有下標和值

var arr=[1,'hello',false]

for(var index in arr){

    //  var index in arr  中的index是宣告的一個變數,這個變數在 arr 陣列中找index,下方例子會告訴你找的是什麼

    console.log(index)    //  輸出 0,1,2 很顯然這個for in迴圈是找陣列中的所有元素的下標值,若想找出每個元素值,如下:

    console.log(arr[index])  //  輸出1,hello,false 

}

For of迴圈:此迴圈需要在ES6的環境下執行,可取出陣列中所有值

var arr=[1,'hello',false]

for(let value of arr){

    //  var value in arr  中的value 是宣告的一個變數,這個變數在 arr 陣列中找value,輸出此陣列中所有值

    console.log(value )    //  輸出1,hello,false 

}

vhile迴圈:ES5 就可執行,先判斷在執行

var i = 0;  // 變數的宣告

while (i < 100){

    //    i<100 只要 i 滿足這個條件時,就迴圈

    console.log(i);

    i++;  //  變數自增,直到條件不滿足時停止

}

do…while迴圈:ES5 就可執行,可理解為執行某個命令知道條件不滿足為止,先執行後判斷,意思是最少執行一次

var i = 0;

do{

    console.log(i);

    i++;  //  變數自增,直到條件不滿足時停止

} while( i < 100) //  此處為條件,當此處條件為false時,此函式只執行一步。

ES5 和 ES6中var和let的小區別

var 和 let 所宣告函式的作用域是不同的,

var 宣告的變數作用域是當前函式(function中),而let宣告的變數僅限於當前作用域,類似於此迴圈內,例如一個大括號中,出了這個大括號就不可以使用了,當兩個都在function中宣告時,沒有明顯的差別,但是當中間有for迴圈時,就會影響變數的執行環境。

例如:

    function(){

        for(var i=0;i<100;i++){

        }

        console.log(i)

        //  如果使用的是var的話,最後會輸出99,

        //  如果改變成let的話,此處會報錯,因為已經脫離了for環境,變數i無法在for迴圈外部訪問

    }