JavaScript控制语句
JavaScript控制语句
条件运算符
如果要一起测试多个条件,并且知道某个条件比其他条件更可能满足或不满足测试,可以使用称为“短路计算”的特性来加速脚本的运行速度。当 JScript 计算逻辑表达式时,只计算要得到结果所需的子表达式。
例如,如果有一个“与”表达式,如 ((x == 123) && (y == 42)),Jscript 首先检查 x 是否为 123。如果不是,即使 y 等于 42,整个表达式的值也不可能为 true。因此,并不对 y 作测试,Jscript 返回 false 值。
类似地,如果多个条件中只要有一个为真(使用 || 运算符),则当任何一个条件满足该测试时测试则停止。如果要测试的条件包括函数调用或其他复合表达式,这种处理方式就有效。出于此种想法,写 OR 表达式时,先写最有可能为 true 的条件。写 AND 表达式时,先写最有可能为 false 的条件。
以这种方式设计脚本的好处的一个示例是:在下例中如果 runfirst() 返回 0 或 false, 则不会运行 runsecond()。
1 | if ((runfirst() == 0) || (runsecond() == 0)) { |
使用循环
JScript 支持四种循环: for 循环、 for…in 循环、 while 循环、 do…while 循环。
使用 for…in 循环
JScript 提供了一种特别的循环方式来遍历一个对象的所有用户定义的属性或者一个数组的所有元素。for…in 循环中的循环计数器是一个字符串,而不是数字。它包含当前属性的名称或者当前数组元素的下标。
下面的代码范例应在 Internet 浏览器中运行,因为它使用 alert 方法,该方法不属于 Jscript。
1 | // 创建具有某些属性的对象 |
尽管 for…in 循环看起来像 VBScript 的 For Each…Next 循环,其实并不一样。JScript 的 for…in 循环重复Jscript 对象所有的属性。VBScript 的 For Each…Next 循环重复集合中的所有项目。要循环 JScript 中的所有集合,需要用 Enumerator 对象。尽管某些对象(像 Internet 浏览器中的那些)支持 VBScript 的 For Each…Next 和 Jscript 的 for…in 循环,但多数对象并不都支持。