《JavaScript高级程序设计》学习笔记(语句)
(1)if语句
语法:
if (condition)
statement1
[else
statement2]
其中condition可以是任何表达式,计算的结果甚至不必是真正的Boolean值,ECMAScript会把它转换成Boolean值。如果条件计算结果为true,执行statement1,如果条件计算结果为false,执行statement2。每个语句都可以是单行代码,也可以是代码块(一组置于括号中的代码行)。
串联使用多个if语句:
if (condition)
statement1
else if
statement2
...
else
statement2
(2)迭代语句
迭代语句又叫循环语句,声明一组要反复执行的命令,直到满足了某些条件为止。
1. do-while语句
do-while语句是后测试循环,即退出条件在执行过循环内部的代码之后计算。
在计算表达式之前,至少会执行循环主体一次
语法:
do
statement
while (expression) ;
2. while语句
while语句是前测试循环,即退出条件是在执行循环内部的代码之前计算。
循环主体可能根本不被执行
语法:
while (expression)
statements
3. for语句
for语句是前测试循环,而且在进入循环之前,能够初始化变量,并定义循环后要执行的代码。
循环主体可能不被执行。如果执行了循环主体,那么将执行循环后表达式
语法:
for (initialization; test; increment)
statements
4. for-in语句
for-in语句是严格的迭代语句,用于枚举对象的属性。
方法property-IsEnumerable()是专门用于说明属性是否可以用for-in语句访问的方法
语法:
for (variable in [object | array])
statements
(3)有标签的语句
为语句提供一个标识符,即给语句加标签,以便以后调用
标签由 break 和 continue 语句使用
多数用于多个层叠的循环中,指出 break 和 continue 应用于哪个语句
语法:
label :
statements
例如:
Outer:
for (i = 0; i < 2; i++){
Inner:
for (j = 0; j < 2; j++) {
if (i < 1) continue Outer;
if (j > 1) break Inner;
}
alert(i+''+j);
}
结果显示12
(4)break语句和continue语句
break语句
立即退出循环,阻止再次反复执行任何代码,
continue语句
退出当前循环,根据控制表达式还允许继续进行下一次循环
break语句和continue语句都可以与有标签的语句联合使用,返回代码中的特定位置。
通常用于当循环内部还有循环的时候
(5)with语句
with语句用于设置代码在特定对象中的作用域。
语法:
with (object)
statements
例子:
var msg = 'abc';
with (msg){
alert(toUpperCase());
}
这里with语句用于msg,在调用toUpperCase()方法时,解释程序将检查该方法是否是本地函数。
如果不是,它将检查伪对象msg,看它是否为该对象的方法,然后将输出"ABC"
注意:with语句是运行缓慢的代码段,尤其是在已设置了属性值时,最好避免使用它
(6)switch语句
语法:
switch (expression) {
case label : statementlist
[break;]
case label : statementlist
[break;]
...
[default : statementlist]
}
每个情况都是表示“如果expression等于value,就执行statementlist”。关键字break会使代码执行跳出switch语句。没有关键字break,代码执行就会继续进入下一个情况。
关键字default说明了表达式的结果不等于任何一种情况时的操作(事实上,它是else从句)。
switch语句可以用于数字或字符串,而且能用不是常量的值说明情况(case)