條件判斷語句
1.if語句
if (condition) statement1 else statement2
其中的condition條件可以是任意表達式,而且對這個表達式的求值結果不一定是布爾值。ECMAScript會自動調用Boolean()轉換函數將這個表達式的結果轉換為一個布爾值。如果對condition求值的結果為true,則執行statement1,如果對condition求值結果為false,則執行statement2。這兩個語句既可以是一行代碼,也可以是一個代碼塊(推薦)。
if (condition1) statement1 else if(condition2) statement2 else statement3
2.switch語句
switch(expression) { case value: statement break; case value: statement break; case value: statement break; default: statement }
switch語句中每一個case的含義是:"如果表達式等於這個值value,則執行後面的語句statement"。而break會導致代碼執行跳出switch語句。如果省略break關鍵字,就會導致執行完當前case後,繼續執行下一個case。最後的default關鍵字則用於在表達式不匹配前面任何一種情形時,執行機動代碼(因此,也相當於一個else語句)。
例子1
var num = 25; switch (true) { case num < 0: alert("Less than 0"); break; case num >= 0 && num <= 10: alert("Between 0 and 10"); break; case num > 10 && num <= 20: alert("Between 10 and 20"); break; default: alert("More than 20"); }
注意:switch語句在比較值時使用的是全等操作符,因此不會發生類型轉換。
循環語句
後測試循環語句。
在對表達式求值之前,循環體內的代碼至少被執行一次。
1.do-while語句
do { statement } while (expression);
例子2
var i = 0; do { i += 2; } while (i < 10); alert(i);//10
前測試循環語句
2.while語句
while(expression) statement
例子3
var i = 0; while(i < 10) { i += 2; } alert(i);//10
3.for語句
它具有在執行循環之前初始化變量和定義循環後要執行代碼的能力。
例子4
for(var i = 0;i < 10;i++) { alert(i); }
迭代語句
for-in語句
for-in 語句是一種精准的迭代語句,可以用來枚舉對象的屬性
for (var prop in window) { console.log(prop); }
ECMAScript對象的屬性沒有順序。因此通過for-in循環輸出的屬性名是不可預測的,具體來講,所有屬性都會被返回一次,單反毀的先後次序可能會因浏覽器而異。建議在使用之前,先檢測確認該對象的值不是null或unedfined。
控制執行語句
break語句
立即退出循環
例子5
var num = 0; for(var i = 1;i < 10;i++) { if(i % 5 == 0) { break; } num++; } alert(num);//4
continue語句
退出當前正在執行的循環代碼,然後開始繼續循環。
var num = 0; for(var i = 1;i < 10;i++) { if(i % 5 == 0) { continue; } num++; } alert(num);//8
return語句
可指定返回值,也可不指定(此時返回undefined)。
1.return語句後停止並立即退出函數,return後面的語句也永遠不會執行
2.return語句只能在函數體內出現,如果不是的話會自動報語法錯誤