條件判斷和循環(huán)是程序中的基本執(zhí)行流程控制方式,這里我們落實到具體語句,來看一下JavaScript程序中的流程控制語句用法總結(jié)
條件判斷語句
1.if語句
if (condition) statement1 else statement2
其中的condition條件可以是任意表達(dá)式,而且對這個表達(dá)式的求值結(jié)果不一定是布爾值。ECMAScript會自動調(diào)用Boolean()轉(zhuǎn)換函數(shù)將這個表達(dá)式的結(jié)果轉(zhuǎn)換為一個布爾值。如果對condition求值的結(jié)果為true,則執(zhí)行statement1,如果對condition求值結(jié)果為false,則執(zhí)行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的含義是:"如果表達(dá)式等于這個值value,則執(zhí)行后面的語句statement"。而break會導(dǎo)致代碼執(zhí)行跳出switch語句。如果省略break關(guān)鍵字,就會導(dǎo)致執(zhí)行完當(dāng)前case后,繼續(xù)執(zhí)行下一個case。最后的default關(guān)鍵字則用于在表達(dá)式不匹配前面任何一種情形時,執(zhí)行機動代碼(因此,也相當(dāng)于一個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語句在比較值時使用的是全等操作符,因此不會發(fā)生類型轉(zhuǎn)換。
循環(huán)語句
后測試循環(huán)語句。
在對表達(dá)式求值之前,循環(huán)體內(nèi)的代碼至少被執(zhí)行一次。
1.do-while語句
do {
statement
} while (expression);
例子2
var i = 0;
do {
i += 2;
} while (i < 10);
alert(i);//10
前測試循環(huán)語句
2.while語句
?
1
while(expression) statement
例子3
var i = 0;
while(i < 10) {
i += 2;
}
alert(i);//10
3.for語句
它具有在執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行代碼的能力。
例子4
for(var i = 0;i < 10;i++) {
alert(i);
}
迭代語句
for-in語句
for-in 語句是一種精準(zhǔn)的迭代語句,可以用來枚舉對象的屬性
for (var prop in window) {
console.log(prop);
}
ECMAScript對象的屬性沒有順序。因此通過for-in循環(huán)輸出的屬性名是不可預(yù)測的,具體來講,所有屬性都會被返回一次,單反毀的先后次序可能會因瀏覽器而異。建議在使用之前,先檢測確認(rèn)該對象的值不是null或unedfined。
控制執(zhí)行語句
break語句
立即退出循環(huán)
例子5
var num = 0;
for(var i = 1;i < 10;i++) {
if(i % 5 == 0) {
break;
}
num++;
}
alert(num);//4
continue語句
退出當(dāng)前正在執(zhí)行的循環(huán)代碼,然后開始繼續(xù)循環(huán)。
var num = 0;
for(var i = 1;i < 10;i++) {
if(i % 5 == 0) {
continue;
}
num++;
}
alert(num);//8
return語句
可指定返回值,也可不指定(此時返回undefined)。
1.return語句后停止并立即退出函數(shù),return后面的語句也永遠(yuǎn)不會執(zhí)行
2.return語句只能在函數(shù)體內(nèi)出現(xiàn),如果不是的話會自動報語法錯誤