欢迎来到JS复习专栏,本文章的主要内容为选择语句if和Switch
流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句分类
-
顺序结构
-
选择结构:if 语句、switch 语句
-
循环结构:while 语句、for 语句
if语句
1、条件判断语句
条件成立才执行。如果条件不成立,那就什么都不做。
格式:
if (条件表达式) {
// 条件为真时,做的事情
}
2、单分支条件分支语句
if (条件表达式) {
// 条件为真时,做的事情
} else {
// 条件为假时,做的事情
}
2,、多分支的 if 语句
if (条件表达式1) {
// 条件1为真时,做的事情
} else if (条件表达式2) {
// 条件1不满足,条件2满足时,做的事情
} else if (条件表达式3) {
// 条件1、2不满足,条件3满足时,做的事情
} else {
// 条件1、2、3都不满足时,做的事情
}
以上所有的语句体中,只执行其中一个。
Switch语句
语法格式
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
...
default:
语句体 n+1;
break;
}
解释: switch 可以理解为“开关、转换” 。case 可以理解为“案例、选项”。
switch 和 case 后面的值:
switch 后面的括号里可以是表达式或者值, 通常是一个变量(通常做法是:先把表达式或者值存放到变量中)。
JS 是属于弱类型语言,case 后面的值1、值2可以是 ‘a’、6、true 等任意数据类型的值,也可以是表达式。注意,在这里,字符串’6’和 数字 6 是不一样的。
case 穿透:
switch
语句中的break
可以省略,但一般不建议(对于新手而言)。否则结果可能不是你想要的,会出现一个现象:case
穿透。
当然,如果你能利用好 case
穿透,会让代码写得十分优雅。
也就是当式子满足某个case的值时,执行该case
里面的代码,如果其中没有break
,将不会跳出switch
,而是继续执行下一个case
代码,直到遇到break
ordefault
用 return 代替 if else
业务场景:
我们在实战业务中涉及到调接口时,一般会这样做:
-
接口返回码为 0 时,前端 resolve。
-
接口返回未登录时,前端跳转到登录页面。
-
接口返回其他情况,或者无返回时,前端 reject。
写法 :
- if else 的写法:(不推荐)
if (res) {
if (+res.retCode == 0) {
resolve(res);
} else if (+res.retCode == 8888) {
goLogin();
} else {
reject(res);
}
} else {
reject();
}
- return 的写法:(推荐)
if (!res || +res.retCode !== 0) {
if (+res.retCode === 8888) {
// 未登录
goLogin();
}
reject(res);
return;
}
resolve(res.data);
备注:如果你没学过 Promise,这个例子可以先不看。等以后学了 Promise 再回来看就很容易明白了。