2.6.1. 判断
判断语句
if 语句的语法:
if (condition) statement1 else statement2
如果条件计算结果为 true,则执行 statement1;如果条件计算结果为 false,则执行 statement2。
注意:
判断的条件会发生自动类型转换:
number:如果非0为true,0为false
string:如果非null或非空为true,否则为false
undefined:false
NaN: false
对象类型:非null为true,否则为false。
2.6.2. 选择
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;
每个情况(case)都是表示“如果 expression 等于 value,就执行 statement”。
关键字 break 会使代码跳出 switch 语句。如果没有关键字 break,代码执行就会继续进入下一个 case。
关键字 default 说明了表达式的结果不等于任何一种情况时的操作(事实上,它相对于 else 从句)。
ECMAScript 和 Java 中的 switch 语句
ECMAScript 和 Java 中的 switch 语句有两点不同。在 ECMAScript 中,switch 语句可以用于字符串,而且能用不是常量的值说明情况:
1、基本数据类型都可以传递给switch case语句。
2、case语句可以是表达式
function test6() {
var color = "xx";
var value1 = "red", value2 = "green";
switch(color) {
case value1:
alert("红色");
break;
case value2:
alert("绿色");
break;
default:
alert("执行默认default");
}
}
这里,switch 语句用于字符串 sColor,声明 case 使用的是变量 BLUE、RED 和 GREEN,这在 ECMAScript 中是完全有效的。
练习:
switch中传递boolean类型值?
var num = 20;
switch(true) {
case num >= 0 && num <= 10:
alert("大于0小于等于10");
break;
case num>10&&num<=20:
alert("大于10小于等于20");
break;
}
2.6.3. 循环
while 语句
while 语句是先测试循环。这意味着退出条件是在执行循环内部的代码之前计算的。因此,循环主体可能根本不被执行。
它的语法如下:
while (expression) statement
例子:
var i = 0;
while (i < 10) {
i += 2;
}
do-while 语句
do-while 语句是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次。
它的语法如下:
do {statement} while (expression);
例子:
var i = 0;
do {i += 2;} while (i < 10);
for 语句
for 语句是前测试循环,而且在进入循环之前,能够初始化变量,并定义循环后要执行的代码。
它的语法如下:
for (initialization; expression; post-loop-expression) statement
注意:post-loop-expression 之后不能写分号,否则无法运行。
例子:
iCount = 6;
for (var i = 0; i < iCount; i++) {
alert(i);
}
这段代码定义了初始值为 0 的变量 i。只有当条件表达式(i < iCount)的值为 true 时,才进入 for 循环,这样循环主体可能不被执行。如果执行了循环主体,那么将执行循环后表达式,并迭代变量 i。
for循环中不会有局部变量,都是全局的变量。
2.6.3. for in语句
for 语句是严格的迭代语句,用于枚举对象的属性或者遍历一个数组的元素。
它的语法如下:
for (property in expression) statement
例子:
for (sProp in window) {
alert(sProp);
}
这里,for-in 语句用于显示 window 对象的所有属性。
2.6.4. With语句
wth语句的作用: 有了 With 语句,在存取对象属性和方法时就不用重复指定参考对象。
格式 :
with(obj){
操作obj的属性语句;
}
<script type="text/javascript">
<!—
with(document){
write("您好 !");
write("<br>这个文档的标题是 : \"" + title + "\".");
write("<br>这个文档的 URL 是: " + URL);
write("<br>现在您不用每次都写出 document 对象的前缀了 !");
}
// -->
</script>