一、ECMAScript if 語句
if 語句是 ECMAScript 中最常用的語句之一。
if 語句的語法:
if (condition) statement1 else statement2
還可以串聯(lián)多個 if 語句。就像這樣:
if (condition1) statement1 else if (condition2) statement2 else statement3
二、ECMAScript 迭代語句
迭代語句又叫循環(huán)語句,聲明一組要反復(fù)執(zhí)行的命令,直到滿足某些條件為止。
循環(huán)通常用于迭代數(shù)組的值(因此而得名),或者執(zhí)行重復(fù)的算術(shù)任務(wù)。
本節(jié)為您介紹 ECMAScript 提供的四種迭代語句。
1、do-while 語句
do-while 語句是后測試循環(huán),即退出條件在執(zhí)行循環(huán)內(nèi)部的代碼之后計算。這意味著在計算表達(dá)式之前,至少會執(zhí)行循環(huán)主體一次。
它的語法如下:
do {statement} while (expression);
2、while 語句
while 語句是前測試循環(huán)。這意味著退出條件是在執(zhí)行循環(huán)內(nèi)部的代碼之前計算的。因此,循環(huán)主體可能根本不被執(zhí)行。
它的語法如下:
while (expression) statement
3、for 語句
for 語句是前測試循環(huán),而且在進(jìn)入循環(huán)之前,能夠初始化變量,并定義循環(huán)后要執(zhí)行的代碼。
它的語法如下:
for (initialization; expression; post-loop-expression) statement
注意:post-loop-expression 之后不能寫分號,否則無法運行。
4、for-in 語句
for 語句是嚴(yán)格的迭代語句,用于枚舉對象的屬性。
它的語法如下:
for (property in expression) statement
PropertyIsEnumerable()是 ECMAScript 中專門用于說明屬性是否可以用 for-in 語句訪問的方法。
三、ECMAScript 標(biāo)簽語句
有標(biāo)簽的語句
可以用下列語句給語句加標(biāo)簽,以便以后調(diào)用:
label : statement
例如:
start : i = 5;
在這個例子中,標(biāo)簽 start 可以被之后的 break 或 continue 語句引用。
四、ECMAScript break 和 continue 語句
break 和 continue 語句對循環(huán)中的代碼執(zhí)行提供了更嚴(yán)格的控制。
1、break 和 continue 語句的不同之處:
- break 語句可以立即退出循環(huán),阻止再次反復(fù)執(zhí)行任何代碼。
- 而 continue 語句只是退出當(dāng)前循環(huán),根據(jù)控制表達(dá)式還允許繼續(xù)進(jìn)行下一次循環(huán)。
2、與有標(biāo)簽的語句一起使用
break 語句和 continue 語句都可以與有標(biāo)簽的語句聯(lián)合使用,返回代碼中的特定位置。
var iNum = 0;
outermost:
for (var i=0; i<10; i++) {
for (var j=0; j<10; j++) {
if (i == 5 && j == 5) {
break outermost;
}
iNum++;
}
}
alert(iNum); //輸出 "55"
在上面的例子中,標(biāo)簽 outermost 表示的是第一個 for 語句。如果使用continue outermost;輸出結(jié)果為95。
五、ECMAScript with 語句
有標(biāo)簽的語句
with 語句用于設(shè)置代碼在特定對象中的作用域。
它的語法:
with (expression) statement
例如:
var sMessage = "hello";
with(sMessage) {
alert(toUpperCase()); //輸出 "HELLO"
}
在這個例子中,with 語句用于字符串,所以在調(diào)用 toUpperCase() 方法時,解釋程序?qū)z查該方法是否是本地函數(shù)。如果不是,它將檢查偽對象 sMessage,看它是否為該對象的方法。然后,alert 輸出 "HELLO",因為解釋程序找到了字符串 "hello" 的 toUpperCase() 方法。
提示:with 語句是運行緩慢的代碼塊,尤其是在已設(shè)置了屬性值時。大多數(shù)情況下,如果可能,最好避免使用它。
六、ECMAScript switch 語句
1、switch 語句
switch 語句是 if 語句的兄弟語句。
開發(fā)者可以用 switch 語句為表達(dá)式提供一系列的情況(case)。
switch 語句的語法:
switch (expression)
case value: statement;
break;
case value: statement;
break;
...
case value: statement;
break;
default: statement;
每個情況(case)都是表示“如果 expression 等于 value,就執(zhí)行 statement”。
2、ECMAScript 和 Java 中的 switch 語句
ECMAScript 和 Java 中的 switch 語句有兩點不同。在 ECMAScript 中,switch 語句可以用于字符串,而且能用不是常量的值說明情況:
var BLUE = "blue", RED = "red", GREEN = "green";
switch (sColor) {
case BLUE: alert("Blue");
break;
case RED: alert("Red");
break;
case GREEN: alert("Green");
break;
default: alert("Other");
}
這里,switch 語句用于字符串 sColor,聲明 case 使用的是變量 BLUE、RED 和 GREEN,這在 ECMAScript 中是完全有效的。