1.if語句 2.do-while語句:後測迴圈語句,迴圈體內的代碼至少執行一次。 3.while語句:前測迴圈語句。 4.for語句:前測迴圈語句。 註意:在ECMAScript中不存在塊級作用域,因此在迴圈內部定義的變數也可以在外部訪問到。 eg: 以上代碼的執行效果是,彈出從0到9的警告框,這 ...
1.if語句
2.do-while語句:後測迴圈語句,迴圈體內的代碼至少執行一次。
3.while語句:前測迴圈語句。
4.for語句:前測迴圈語句。
註意:在ECMAScript中不存在塊級作用域,因此在迴圈內部定義的變數也可以在外部訪問到。
eg:
1 var count=10; 2 for(var i=0;i<count;i++){ 3 alert(i); 4 } 5 alert(i);
以上代碼的執行效果是,彈出從0到9的警告框,這是for語句迴圈的結果,最後彈出顯示10的警告框,這是for迴圈外的那條語句的效果,說明迴圈內部定義的變數也可以在外部訪問到。
5.for-in語句
for-in語句是一種精準的迭代語句,可以用來枚舉對象的屬性,
語法:for (proerty in experssion)statement
eg:
1 for(var propName in window){ 2 document.write(propName); 3 }
上面的例子使用for-in迴圈來顯示BOM中window對象所有的屬性。每迴圈一次,都會將window對象中存在的一個屬性名賦值給變數propName,直到對象中的所有屬性都被枚舉一遍為止。
ECMAScript對象的屬性沒有順序。因此,通過for-in迴圈輸出的屬性名的順序是不可預測的,具體來講,所有的屬性都會被返回一次,但是返回的先後順序可能會因瀏覽器而異。
註意,如果迭代的對象的變數值為null或是undefined,for-in語句會拋出錯誤。ECMAScript5更正了這一行為,對這種情況不再拋出錯誤,而只是不執行迴圈體。為了保證最大限度的相容性,建議在使用for-in迴圈之前,先檢測確認該對象的值不是null或undefined。
W3C:
for...in 語句用於遍曆數組或者對象的屬性(對數組或者對象的屬性進行迴圈操作)。
JavaScript for...in 語句
for...in 語句用於對數組或者對象的屬性進行迴圈操作。
for ... in 迴圈中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。
語法:
for
(變數 in
對象)
{
在此執行代碼
}
“變數”用來指定變數,指定的變數可以是數組元素,也可以是對象的屬性。
eg:
1 var mycars = new Array() 2 mycars[0] = "Saab" 3 mycars[1] = "Volvo" 4 mycars[2] = "BMW" 5 6 for (var x in mycars) 7 { 8 document.write(mycars[x] + "<br />") 9 }
6.label語句 使用label語句可以在代碼中添加標簽,以便將來使用。語法:label:statement
eg:參考下麵的break和cuntinue語句例子。
7.break和continue語句
break和continue語句用於在迴圈中精確地控制代碼的執行。break會立即退出迴圈,強制繼續執行迴圈後面的語句,而continue語句雖然也是立即退出迴圈,但是退出迴圈後悔立即從迴圈的頂部繼續執行。
eg:
1 outermost: 2 for (var i=0;i<10;i++){ 3 for(var j=0; j<10;j++){ 4 if(i==5&&j==5){ 5 break outermost; 6 } 7 num++; 8 } 9 } 10 alert(num);
改為continue:
1 outermost: 2 for (var i=0;i<10;i++){ 3 for(var j=0; j<10;j++){ 4 if(i==5&&j==5){ 5 continue outermost; 6 } 7 num++; 8 } 9 } 10 alert(num);
8.with語句:用於將代碼的作用域設置到一個特定的對象中。語法:with (expression) statement;
註意:在嚴格模式下不允許使用with語句。由於大量的使用with語句會導致性能下降,同時也會給調試代碼造成困難,因此在大型開發應用程式時,不建議使用with語句。
9.switch語句。
註意:(1)switch語句中可以使用任何數據類型。
(2)switch語句在比較值時使用的是全等操作符,因此不會發生類型轉換。