大家都知道JS代码,在不考虑同步异步的时候是按照从上到下的循序运行代码,为了让我们的代码更加的灵活,出现了分支语句和循环语句。
分支:根据不同的情况,执行对应代码; 循环:重复执行某一部分代码
分支:if else、 三元运算符 、switch
if else
简单理解为 if 就是如果,else 就是或者,两者配合使用if ( 条件 ) { // 条件成立执行语句 } else {
// 否则执行语句 }
// 判断分数
var score = "88";
if(score < 60) {
console.log("不及格");
} else if (score >= 60&&score < 70){
console.log("一般");
} else if (score >=70 && score <80){
console.log("良好");
} else if (score >= 80 && score < 90){
console.log("优秀")
} else if (score >= 90 && score < 100){
console.log("厉害");
} else if (score == 100){
console.log("满分");
} else {
console.log("错误")
}
三元运算符
表达式1 ? 表达式2 : 表达式3;是对if……else语句的一种简化写法,相对if else比较简单,也比较局限
// num 为分数的话
let num = 80
let str = num>60? '及格' : '不及格'
console.log(str);
switch
switch()括号中是需要处理的数据,每个case是一个条件,并且是强等不会转换类型,比如 ‘10’ 就不等于 10;default 关键词来规定匹配不存在时做的事情
如果当前case里面没有break,则不回退出switch语句,而是继续执行下一个case,直到遇到break或执行default语句才退出switch语句。
let day = new Date()
day = day.getDay()
switch (Number(day)){
case 1:
alert('周一')
break;
case 2:
alert('周二')
break;
case 3:
alert('周三')
break;
case 4:
alert('周四')
break;
case 5:
alert('周五')
break;
case 6:
alert('周六')
break;
case 0:
alert('周日')
break;
default:
alert('输入错误')
}
能用switch语句实现的就一定可以使用if实现,但是反之不一定,如果是区间范围就采用if,如果是等值判断使用switch
当分支比较少时,if…else…语句的执行效率比switch语句更高。
当分支比较多时,switch语句的执行效率比if…else…语句更高,结构也更清晰。
循环:for 、while、do while
按照判断和执行循序区分
for和while:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增/减表达式3) {
// 循环体
}
// 当循环条件为true时,执行循环体,
// 当循环条件为false时,结束循环。
while (循环条件) {
//循环体
}
do while:
do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。
do {
// 循环体;
} while (循环条件);
还有另一种分法:
while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
比如计算100内的和三种方法
// while
var i = 0;
var sum = 0;
while (i <= 100) {
// 循环体
sum += i;
// 自增
i++;
}
// do while
var i = 0;
var sum = 0;
do {
// 循环体
sum += i;
// 自增
i++;
}while (i <= 100)
// for
var sum = 0
for (var i = 0; i <= 100; i++) { // 定义i 判断条件 变量i的自增
// 循环体
sum += i;
}
console.log(sum);