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 语句是运行缓慢的代码块,尤为是在已设置了属性值时。大多数状况下,若是可能,最好避免使用它。