《JavaScript高级程序设计》读书笔记3.4语句

ECMAScript-262规定一组语句,也称为流控制语句,使用一个或多个关键字来完成给定任务。本质上,语句定义了ECMAScript中主要语法。

1.if语句

1
2
3
4
5
6
7
if(i>25){
alert("Greater than 25.");
}else if(i<0){
alert("Less than 0.");
}else{
alert("Between 0 and 25, inclusive.");
}

2.do-while语句

一种后测试循环语句,用于循环体中代码至少执行一次。

1
2
3
4
5
var i=0;
do{
i+=2;
}while(i<10);
aler(i);

3.while语句

一种前测试循环语句,循环体内代码被执行前,就会对出口条件求值。循环体内代码可能永远不会被执行。

1
2
3
4
var i=0;
while(i<10){
i+=2;
}

4.for语句

一种前测试循环语句,for循环只是把与循环有关代码集中在一起。

1
2
3
4
5
6
7
8
9
10
11
var count=10;
for(var i=0;i<count;i++){
alert(i);
}
等价于
var count=10;
var i=0;
while(i<count){
alert(i);
i++;
}

循环内部定义的变量也可以在外部访问到。如下

1
2
3
4
5
var count=10;
for(var i=0;i<count;i++){
alert(i);
}
alert(i); //10;

无限循环

1
2
3
for(;;){          //无限循环
doSomething();
}

for循环转换成while循环

1
2
3
4
5
6
var count=10;
var i=0;
for(;i<count;){
alert(i);
i++;
}

5.for-in语句

一种精准的迭代语句,可以用来枚举对象的属性。

1
2
3
4
for(var propName in window){
document.write(propName);
}
//用for-in循环显示BOM中window对象的所有属性。

没有顺序,对象不能

6.label语句

可以在代码中添加标签,以便将来使用。

1
2
3
start:for(var i=0;i<count;i++){
alert(i);
}

由break或continue引用,一般与for等循环语句配合使用。

7.break和continue语句

都用于精确地控制代码的执行。
break语句会立即退出循环,强制继续执行循环后面的语句。

1
2
3
4
5
6
7
8
var num=0;
for(var i=1;i<10;i++){
if(i%5==0){
break;
};
num++;
}
alert(num); //4

continue语句会立即退出循环,但退出循环后会从循环的顶部继续执行。

1
2
3
4
5
6
7
8
var num=0;
for(var i=1;i<10;i++){
if(i%5==0){
continue;
};
num++;
}
alert(num); //8

break和continue都可以与label语句联合使用,从而返回代码中特定位置。

1
2
3
4
5
6
7
8
9
10
11
12
break联用
var num=0;
outermost:
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
if(i==5&&j==5){
break outermost; //退出整个for语句
}
num++;
}
}
alert(num); //55
1
2
3
4
5
6
7
8
9
10
11
12
continue联用
var num=0;
outermost:
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
if(i==5&&j==5){
continue outermost; //内部循环减少5次
}
num++;
}
}
alert(num); //95

建议使用label语句,一定要使用描述性标签,同时不要嵌套过多循环。

8.with语句

将代码的作用域设置到一个特定的对象中,不建议使用。

9.switch语句

与if语句类似。
两大特定:Ⅰ、可以使用任何数据类型,Ⅱ、每个case值不一定是常量,可以是变量,甚至表达式。
比较值时使用的是全等操作符,不会发生类型转换。

liborn wechat
欢迎您扫一扫上面的微信二维码,订阅我的公众号!