ECMAScript 語句: 進一步說是流程控制語句。express
主要流程有:順序,選擇,循環。函數
順序語句不用多說。(大括號中的語句基本都是順序的)oop
選擇語句:post
if (i > 30) {alert("大於 30");} else {alert("小於等於 30");}
if (i > 30) { alert("大於 30"); } else if (i < 0) { alert("小於 0"); } else { alert("在 0 到 30 之間"); }
進一步有了switch語句:
switch (expression) case value: statement; break; case value: statement; break; case value: statement; break; case value: statement; break; ... case value: statement; break; default: statement;
循環語句:
do-while 語句是後測試循環,即退出條件在執行循環內部的代碼以後計算。這意味着在計算表達式以前,至少會執行循環主體一次。測試
它的語法以下:spa
{statement} (expression);dowhile
例子:code
var i = 0; do {i += 2;} while (i < 10);
while 語句是前測試循環。這意味着退出條件是在執行循環內部的代碼以前計算的。所以,循環主體可能根本不被執行。對象
它的語法以下:ip
(expression) statementwhile
例子:作用域
var i = 0; while (i < 10) { i += 2; }
for 語句是前測試循環,並且在進入循環以前,可以初始化變量,並定義循環後要執行的代碼。
它的語法以下:
(initialization; expression; post-loop-expression) statementfor
注意:post-loop-expression 以後不能寫分號,不然沒法運行。
例子:
iCount = 6; for (var i = 0; i < iCount; i++) { alert(i); }
這段代碼定義了初始值爲 0 的變量 i。只有當條件表達式(i < iCount)的值爲 true 時,才進入 for 循環,這樣循環主體可能不被執行。若是執行了循環主體,那麼將執行循環後表達式,並迭代變量 i。
for 語句是嚴格的迭代語句,用於枚舉對象的屬性。
它的語法以下:
(property expression) statementforin
例子:
for (sProp in window) { alert(sProp); }
這裏,for-in 語句用於顯示 window 對象的全部屬性。
前面討論過的 PropertyIsEnumerable() 是 ECMAScript 中專門用於說明屬性是否能夠用 for-in 語句訪問的方法。
循環語句搭配的語句break 和 continue 。
能夠用下列語句給語句加標籤,以便之後調用:
label : statement
例如:
start : i = 5;
with 語句用於設置代碼在特定對象中的做用域。(與vb中with挺像)
它的語法:
with (expression) statement
例如:
var sMessage = "hello";
with(sMessage) {
alert(toUpperCase()); //輸出 "HELLO"
}
在這個例子中,with 語句用於字符串,因此在調用 toUpperCase() 方法時,解釋程序將檢查該方法是不是本地函數。若是不是,它將檢查僞對象 sMessage,看它是否爲該對象的方法。而後,alert 輸出 "HELLO",由於解釋程序找到了字符串 "hello" 的 toUpperCase() 方法。
提示:with 語句是運行緩慢的代碼塊,尤爲是在已設置了屬性值時。大多數狀況下,若是可能,最好避免使用它。