前端学习-JavaScript条件分支语句

1,025 阅读6分钟

条件分支语句

if 语句

if 语句是最常用的条件分支语句,作用就是通过某个指定的判断条件,决定走哪个分支的代码。
结构:

if (condition expression) {
	statement1;
} else {
	statement2;
}

condition expression:条件表达式,可以是任意的代码或者表达式,参与程序过程都会强 制得到一个布尔值执行结果。表达式,js 中遇到任何表达式都会先计算出一个结果然后才 能继续参与程序。
statement:结构体,js 中可以用 {} 包括一行到多行语句,这些语句整体组成了一个结构体,结构体中的语句要执行就都执行,要不执行就都不执行。

注意事项

if 语句可以实现选择的功能,两个分支可以选择一个执行,不会都执行。
if 语句可以不写 else 分支,表示条件成立就执行后面的结构体,如果条件不成立,直接跳出 if 语句不执行。
if 语句后面的机构体如果是单行语句组成,可以省略 {} 不写。不建议省略大括号,容易出现程序错误。
• if 语句能够控制自己内部的流程,但是不论走哪个分支,结束后都要继续执行 if 语句后面的其他语句,叫做殊途同归现象。

多分支 if 语句

包含多个判断条件,对应多个分支。
语法:if......else if......else if......else......
如果......否则如果......否则如果...... 否则......

结构:

if (条件1) {
    满足条件1,执行的结构体 
} else if (条件2) {
    不满足条件1,满足条件2,执行的结构体 
} else if (条件3) {
    不满足条件1/2,满足条件3,执行的结构体 
} else {
    不满足前面所有条件,执行的结构体 
}

注意事项

1多分支 if 语句中可以有多个 else if 的分支,但是 else 分支只能有一个,必须出现在最后, 作为备用的选项,而且 else 也可以省略不写,表示前面条件如果都不满足,直接跳出不走任何分支。
2多分支 if 语句有跳楼现象:条件从上往下依次验证,如果满足了某个条件,会立即执行后 面的结构体,执行完之后,不会再往后验证其他的条件了,而是从这一层直接跳楼跳出if语句,这就是跳楼现象。

if 语句嵌套

if 语句的结构体部分,代码可以是任意的代码,甚至是另外一组 if 语句。
也就是 if 语句内部嵌套了 if 语句。
如果想执行内部 if 语句的某个分支,必须满足外部 if 语句的条件,同时还要满足内部 if语句的某个条件。
优点:可以简化多分支 if 语句。

三元表达式

又叫三元运算符,必须有三个操作数参与的运算。
操作符号:? :
表达式:在参与 js 程序时,都必须先计算出表达式结果,才能参与后续程序。
由于三元表达式具备了一些选择的效果,所以也是一种条件分支语句。

三元表达式语法

boolean_expression ? true_value : false_value;
boolean_expression:布尔表达式,表达式在参与三元运算中必须求得一个布尔类型的值,要么是 true,要么是 false,结果作为判断依据,判断到底去:前面的值还是后面的值。
true_value:布尔表达式的值为真时,三元表达式的结果。
false_value:布尔表达式的值为假时,三元表达式的结果。
作用:根据布尔表达式的结果,如果为真,三元表达式结果就是真值,如果为假,三元表达式结果就是假值。

三元表达式优点

虽然if语句可以模拟三元表达式,但是三元表达式有自己的优点:
1二选一的情况下,三元表达式结构更加简单。
2三元表达式作为一个表达式参与程序时必须运算出结果才能参与,可以利用这个特点,将二选一结果赋值给一个变量。
遇到给一个变量根据条件二选一赋值的情况,可以使用三元表达式。

switch 语句

开关语句允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个 case 标签。 如果匹配成功,这个程序执行相关的语句。

switch 语句语法

switch (表达式) { 
    case1:
        结构体1;
        break;
    case2:
        结构体2;
        break;
    default:
        结构体n;
        break;
}

switch 语句结构解析

switch:关键字表示开始进入一个开关语句。
表达式:会求出一个具体的值,将这个值去与 {} 内部的 case 后面的值进行对比、匹配,如果值相等表示匹配成功。匹配相等时,方式是进行全等于匹配,不止值要相等,数据类型也要相等。
case:示例的意思,作为关键字后面必须跟一个空格,书写匹配的值。
case 后面的结构体:每个 case 匹配成功之后要执行的语句。
break:用于打断结构体,直接跳出程序,模拟跳楼现象。
default:相当于if语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default后面的语句。

switch 语句运行机制

switch 语句首先会将小括号内的表达式计算出一个结果,用结果去匹配结构体内部的 case;
从上往下进行匹配,如果匹配成功,会立即执行这个 case 后面的语句,直到遇到一个 break 跳出整个 switch 语句;
如果前面的 case 没有匹配成功,会跳过 case 之间的语句,去匹配下一个 case,直到匹 配成功,如果都不成功就执行 default 后面的语句。

注意事项

default 可以不写,相当于 if 语句没有 else。
break 关键字:根据结构需要有时必须在每个 case 后面都要写,为了模拟跳楼现象,如果不写 break,对应的 case 后面的语句执行之后,不会跳出结构体,会继续想下执行其他case 的后面的语句,直到遇到一个 break。
可以利用 break 不写的情况制作一些特殊的案例

条件分支语句总结

总结:实际工作中使用三种语句的情景。
if 语句:最常用的语句,所有的判断情况都能够书写。
三元表达式:多用于给变量赋值根据条件二选一的情况。
switch 语句:多用于给一个表达式去匹配多种固定值可能性的情况。