您好,登錄后才能下訂單哦!
這篇文章主要介紹JavaScript循環的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
要計算1+2+3,我們可以直接寫表達式:
1 + 2 + 3; // 6
要計算1+2+3+...+10,勉強也能寫出來。
但是,要計算1+2+3+...+10000,直接寫表達式就不可能了。
為了讓計算機能計算成千上萬次的重復運算,我們就需要循環語句。
JavaScript的循環有兩種,一種是for循環,通過初始條件、結束條件和遞增條件來循環執行語句塊:
var x = 0; var i; for (i=1; i<=10000; i++) { x = x + i; } x; // 50005000
讓我們來分析一下for循環的控制條件:
?i=1 這是初始條件,將變量i置為1;
?i<=10000 這是判斷條件,滿足時就繼續循環,不滿足就退出循環;
?i++ 這是每次循環后的遞增條件,由于每次循環后變量i都會加1,因此它終將在若干次循環后不滿足判斷條件i<=10000而退出循環。
練習
利用for循環計算1 * 2 * 3 * ... * 10的結果。
for循環最常用的地方是利用索引來遍歷數組:
var arr = ['Apple', 'Google', 'Microsoft']; var i, x; for (i=0; i<arr.length; i++) { x = arr[i]; alert(x); }
for循環的3個條件都是可以省略的,如果沒有退出循環的判斷條件,就必須使用break語句退出循環,否則就是死循環:
var x = 0; for (;;) { // 將無限循環下去 if (x > 100) { break; // 通過if判斷來退出循環 } x ++; }
for ... in
for循環的一個變體是for ... in循環,它可以把一個對象的所有屬性依次循環出來:
var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { alert(key); // 'name', 'age', 'city' }
要過濾掉對象繼承的屬性,用hasOwnProperty()來實現:
var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { if (o.hasOwnProperty(key)) { alert(key); // 'name', 'age', 'city' } }
由于Array也是對象,而它的每個元素的索引被視為對象的屬性,因此,for ... in循環可以直接循環出Array的索引:
var a = ['A', 'B', 'C']; for (var i in a) { alert(i); // '0', '1', '2' alert(a[i]); // 'A', 'B', 'C' }
請注意,for ... in對Array的循環得到的是String而不是Number。
while
for循環在已知循環的初始和結束條件時非常有用。而上述忽略了條件的for循環容易讓人看不清循環的邏輯,此時用while循環更佳。
while循環只有一個判斷條件,條件滿足,就不斷循環,條件不滿足時則退出循環。比如我們要計算100以內所有奇數之和,可以用while循環實現:
var x = 0; var n = 99; while (n > 0) { x = x + n; n = n - 2; } x; // 2500
在循環內部變量n不斷自減,直到變為-1時,不再滿足while條件,循環退出。
do ... while
最后一種循環是do { ... } while()循環,它和while循環的唯一區別在于,不是在每次循環開始的時候判斷條件,而是在每次循環完成的時候判斷條件:
var n = 0; do { n = n + 1; } while (n < 100); n; // 100
用do { ... } while()循環要小心,循環體會至少執行1次,而for和while循環則可能一次都不執行。
以上是“JavaScript循環的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。