javascript for 循環(huán)
循環(huán)可多次執(zhí)行代碼塊。
1. javascript 循環(huán)
假如您需要運(yùn)行代碼多次,且每次使用不同的值,那么循環(huán)(loop)相當(dāng)方便使用。
通常我們會(huì)遇到使用數(shù)組的例子:
不需要這樣寫:
text += cars[0] + "<br>"; text += cars[1] + "<br>"; text += cars[2] + "<br>"; text += cars[3] + "<br>"; text += cars[4] + "<br>"; text += cars[5] + "<br>";
您能夠這樣寫:
for (i = 0; i < cars.length; i++) { text += cars[i] + "<br>"; }
2. 不同類型的循環(huán)
javascript 支持不同類型的循環(huán):
- for - 多次遍歷代碼塊
- for/in - 遍歷對(duì)象屬性
- while - 當(dāng)指定條件為 true 時(shí)循環(huán)一段代碼塊
- do/while - 當(dāng)指定條件為 true 時(shí)循環(huán)一段代碼塊
3. for 循環(huán)
for 循環(huán)是在您希望創(chuàng)建循環(huán)時(shí)經(jīng)常使用的工具。
for 循環(huán)的語法如下:
for (語句 1; 語句 2; 語句 3) { 要執(zhí)行的代碼塊 }
語句 1 在循環(huán)(代碼塊)開始之前執(zhí)行。
語句 2 定義運(yùn)行循環(huán)(代碼塊)的條件。
語句 3 會(huì)在循環(huán)(代碼塊)每次被執(zhí)行后執(zhí)行。
范例
for (i = 0; i < 5; i++) { text += "數(shù)字是 " + i + "<br>"; }
從上面的代碼中,您可以了解到:
語句 1 在循環(huán)開始之前設(shè)置了一個(gè)變量(var i = 0)。
語句 2 定義運(yùn)行循環(huán)的條件(i 必須小于 5)。
語句 3 會(huì)在代碼塊每次執(zhí)行之后對(duì)值進(jìn)行遞增(i++)。
4. 語句 1
通常,您會(huì)使用語句 1 來初始化循環(huán)中所使用的的變量(i = 0)。
但情況并不總是這樣,javascript 不會(huì)在意。語句 1 是可選的。
您可以在語句 1 中初始化多個(gè)值(由逗號(hào)分隔):
范例
for (i = 0, len = cars.length, text = ""; i < len; i++) { text += cars[i] + "<br>"; }
而且您還可以省略語句 1(比如在循環(huán)開始前設(shè)置好值):
范例
var i = 2; var len = cars.length; var text = ""; for (; i < len; i++) { text += cars[i] + "<br>"; }
5. 語句 2
通常語句 2 用于計(jì)算初始變量的條件。
但情況并不總是這樣,javascript 不會(huì)在意。語句 2 也是可選的。
如果語句 2 返回 true,那么循環(huán)會(huì)重新開始,如果返回 false,則循環(huán)將結(jié)束。
如果省略語句 2,那么必須在循環(huán)中提供一個(gè) break。否則循環(huán)永遠(yuǎn)不會(huì)結(jié)束。請(qǐng)?jiān)谙乱徽麻喿x更多關(guān)于 break 的內(nèi)容。
6. 語句 3
通常語句 3 會(huì)遞增初始變量的值。
但情況并不總是這樣,javascript 不會(huì)在意。語句 3 也是可選的。
語句 3 可做任何事情,比如負(fù)遞增(i--),正遞增(i = i + 15),或者任何其他事情。
語句 3 也可被省略(比如當(dāng)您在循環(huán)內(nèi)遞增值時(shí)):
范例
var i = 0; var len = cars.length; for (; i < len; ) { text += cars[i] + "<br>"; i++; }
7. for/in 循環(huán)
javascript for/in 語句遍歷對(duì)象的屬性:
范例
var person = {fname:"bill", lname:"gates", age:62}; var text = ""; var x; for (x in person) { text += person[x]; }