与其他语言类似,js的基本程序结构包含 3 种,顺序结构,循环结构,分支结构。
1、顺序结构
顺序结构,即从上至下,依次执行。
eg:交换 a 和 b 的值
1 | var a = 1, b = 2, c = 3; |
如果调换语句的顺序,将得到不同的结果
1 | var a = 1, b = 2, c = 3; |
2、循环结构
循环结构包含:判断表达式、循环体、结束语句,以下用前三种方式分别求出10以内的正整数和
可以用 break 或者 continue 结束语句
- for 语句
1
2
3
4
5var count = 0;
for(var i = 0; i <= 10; i++){
count += i;
}
console.log(count); === 55
for 表达式可以部分省略,但是在此之前要先声明,如下代码所示。如果全部省略(即:for(;;) { … }),将会无限循环
1 | var i = 0; |
while 语句
1
2
3
4
5
6
7var count = 0;
var i = 0;
while(i <= 10){
count += i;
i++;
}
console.log(count); === 55do-while 语句
循环体里的语句至少被执行一次1
2
3
4
5
6
7var count = 0;
var i = 0;
do {
count += i;
i++;
} while(i <= 10)
console.log(count); === 55for-in 语句
枚举对象。每个对象都应该有值,如果没有值,ECMAScript 5 版本不再执行该循环体,更早的版本会抛出错误3、分支结构(选择结构)
if
条件可以是任意表达式,分支内容可以是一条语句,也可以是一个代码块(必须用花括号括起来)
不能用 break 或者 continue 结束语句单向选择
1
if(条件) {分支体}
双向选择
1
if(条件) {分支1} else {分支2}
多向选择
1
2
3if(条件1) {分支1}
else if(条件2) {分支2}
else {分支3}
switch…case
- 多向选择
switch 语句的比较值用的是全等操作符,也就是说值和类型都要一致(10 与 ‘10’ 不相等)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23switch(value) {
case value1:
do something
break;
case value2:
do something
break;
}
// 共同 value 值合并处理
switch(value) {
case value1:
case value2:
do something
break;
}
// 默认处理
switch(value) {
...
default:
do something
break;
}
- 多向选择
三目运算
条件 ? 操作1(符合条件) : 操作2(不符合条件)
eg:1
2
3var a = 10;
a > 0 ? a++ : a = 0
console.log(a); === 11
顺序结构可以包含循环结构和分支结构