一、语句
1. 概念
- 表达式在 JavaScript 中是短语,那么语句就是 JavaScript的整句或命令。
- JavaScript 语句,以分号或换行结尾。
- JavaScript程序就是一系列可执行语句的集合。
- 默认情况下,JavaScript解释器会按照语句的编写顺序依次执行,但有些语句或控制结构改变语句的默认执行顺序。如 "条件语句" "循环语句" "跳转语句"。
2. 分类
- 表达式语句,是js中最简单的语句
- 复合语句,用花括号把多条语句括起来,形成复合语句
- 空语句
- 声明语句,声明变量、声明函数等
- 条件语句
- 循环语句
- 跳转语句
二、 流程控制结构
1. 顺序结构
2. 分支结构
3. 循环结构
三、条件语句(实现分支结构)
1. 单向分支
最简单的条件语句
if (条件表达式) {
语句;
}
2. 双向分支
表示如果……就……否则……
if (条件表达式) {
语句; //条件为true,执行这里
} else {
语句; //条件为false,执行这里
}
3. 多向分支
进行多条件判断
if (条件表达式) {
语句;
} else if (条件表达式) {
语句;
} else if (条件表达式) {
语句;
} else {
语句;
}
4. 多向分支
当需要分类讨论时使用
每个分支需要主动调用break语句跳出
switch (表达式) {
case 表达式可能的值:语句;break;
case 表达式可能的值:语句;break;
case 表达式可能的值:语句;break;
default:语句;
}
// 出生年份判断生肖
function animalSign(year) {
var num = ((2000 - year) % 12 + 12) % 12;
switch (num % 12) {
case 0: console.log('您的生肖是龙'); break;
case 1: console.log('您的生肖是兔'); break;
case 2: console.log('您的生肖是虎'); break;
case 3: console.log('您的生肖是牛'); break;
case 4: console.log('您的生肖是鼠'); break;
case 5: console.log('您的生肖是猪'); break;
case 6: console.log('您的生肖是狗'); break;
case 7: console.log('您的生肖是鸡'); break;
case 8: console.log('您的生肖是猴'); break;
case 9: console.log('您的生肖是羊'); break;
case 10: console.log('您的生肖是马'); break;
case 11: console.log('您的生肖是蛇'); break;
default: console.log('输入错误');
}
}
animalSign(2000)
5. 嵌套分支
if (表达式) {
if (表达式) {
....
}
...
} else {
...
}
四、循环结构(实现循环结构)
1. while循环
while (条件表达式) {
语句;
}
循环成功(非死循环)的条件:
- 循环的条件表达式不能永远都成立
- 随着循环次数的增加,条件表达式越来越趋向于不成立
//计算1~10之间所有的奇数的乘机
let num = 1;
let mul = 1;
while (num <= 10) {
mul *= num
num += 2
}
console.log('1~10所有奇数的乘机', mul)
2. do while循环
do {
语句;
} while (条件表达式)
while 循环与 do while 循环的区别:
-
do while 只有第一次执行循环体代码没有判断,以后每一次都经过判断再执行
-
实现循环次数超过 1 次的循环, while 与 do while 的条件表达式、函数体、循环标记变量,都一样
//循环输出0~10之间所有的偶数
var a = 0;
do {
console.log(a);
a += 2;
} while ( a < 11);
console.log('循环结束之后循环标记变量的值:',a)
3. for循环
for (循环标记变量初始化; 条件表达式; 循环标记变量的变化) {
语句;
}
for (var i = 1;i < 5;i ++){}
for 循环的特点:
- 循环标记变量初始化在循环开启之前执行一次
- 条件表达式在每次循环之前都会进行判断
- 循环标记变量的变化每次循环体语句执行完毕后执行
//10的阶乘
let num = 1
for (let i = 1; i <= 10; i++) {
num *= i
}
console.log(num); //3628800
//1!+2!+3!
for (var i = 1, sum = 0; i <= 3; i++) {
for (var j = 1, res = 1; j <= i; j++) {
res *= j;
}
sum += res;
}
console.log('结果是', sum); //9
五、跳转语句
1. break
-
在 switch case 中使用:
在本 case 中结束,没有break 会继续执行下一个 case
-
在循环结构中使用:(包括 for 循环、while循环、do while 循环)
break 表示结束整个循环,一旦执行到 break,整个循环结束了
for (let i = 1; i < 99; i++) {
console.log(i); //1 2 3
if (i == 3) { break };
}
2. continue
-
在循环结构中使用:(包括 for 循环、while循环、do while 循环)
continue 表示跳出本次循环,下一次循环继续; 一旦执行到 continue,本次循环后面的代码会跳过
for (let i = 1; i < 8; i++) {
if (i == 3) { continue };
console.log(i); //1 2 4 5 6 7
}