1. for語句
for語句也是一種前測試循環(huán)語句,但它具有在執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行的代碼的能力。以下是for語句的語法:
for (initialization; expression; post-loop-expression) statement
下面是一個示例:
var count=10;
for (var i=0j i alert(i);
}
以上代碼定義了變量i的初始值為0。只有當條件表達式(i var count=10;
var i=0;
while(i alert (i);
i++;
}
使用while循環(huán)做不到的,使用for循環(huán)同樣也做不到。也就是說,for循環(huán)只是把與循環(huán)有關的代碼集中在了一個位置。
在這里,南昌網(wǎng)站建設公司百恒網(wǎng)絡前端開發(fā)工程師有必要指出的是,在for循環(huán)的變量初始化表達式中,也可以不使用var關鍵字。該變量的初始化可以在外部執(zhí)行,例如:
var count=10;
alert(i);
for ( i=0;i 以上代碼與在循環(huán)初始化表達式中聲明變量的效果是一樣的。由于ECMAScLript中不存在塊級作用域(第4章將進一步討論這一點),因此在循環(huán)內(nèi)部定義的變量也可以在外部訪問到。例如:
var count -1(
for (var i=O; i alert (i);
}
alert (i);
在這個例子中,會右一個警告框顯示循環(huán)完成后變量i的值,這個值是10。這是因為,即使i是在循環(huán)內(nèi)部定義的一個變量,但在循環(huán)外部仍然可以訪問到它。
此外,南昌網(wǎng)頁設計公司工程式師提示:for語句中的初始化表達式、控制表達式和循環(huán)后表達式都是可選的。將這兩個表達式全部省略,就會創(chuàng)建一個無限循環(huán),例如:
for(;;){ //無限循環(huán)
doSomething();
)
而只給出控制表達式實際上就把for循環(huán)轉(zhuǎn)換成了while循環(huán),例如:
var count=10;
var i=O;
for (; i alert (i);
i++;
}
由于for語句存在極大的靈活性,因此它也是ECMAScript中最常用的一個語句。
2. for-in語句
for-in語句是一種精準的迭代語句,可以用來枚舉對象的屬性。以下是for-in語句的語法:
for (property in expression) statement
下面是一個示例:
for (var propName in window) {
document.write (propName);
document.write("
"); }
在這個例子中,我們使用for-in循環(huán)來顯示了BOM中window對象的所有屬性。每次執(zhí)行循環(huán)時,都會將window對象中存在的一個屬性名賦值給變量propName。這個過程會一直持續(xù)到對象中的所有屬性都被枚舉一遍為止。與for語句類似,這里控制語句中的var操作符也不是必需的。但是,為了保證使用局部變量,南昌網(wǎng)站制作公司前端開發(fā)工程師推薦上面例子中的這種做法。
ECMAScript對象的屬性沒有順序。因此,通過for-in循環(huán)輸出的屬性名的順序是不可預測的。具體來講,所有屬性都會被返回一次,但返回的先后次序可能會因瀏覽器而異。
南昌網(wǎng)站優(yōu)化公司提醒,safari 3以前版本的for-in語句中存在一個bug,該bug會導致某些屬性被返回兩次.
希望本文對廣大站長或從事企業(yè)網(wǎng)站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡公司百恒網(wǎng)絡技術部聯(lián)系。我們很高興與廣大站長和從事企業(yè)網(wǎng)站建設公司技術人員分享我們的技術和經(jīng)驗。