分支结构
程序的流程控制语句
-
顺序结构
默认,从上至下依次执行每一句话
-
分支结构
通过条件判断,选择部分代码运行
-
循环结构
通过条件判断,选择要不要重复执行某块代码
if分支
只要满足了一条路,就不会再走别的路
if
if(条件){
操作
}
if...else
if(条件){
操作
}else{
默认操作
}
if...else if...else
if(条件1){
操作1
}else if(条件2){
操作2
}...else{
默认操作
}
switch...case分支
switch(变量/表达式){
case 值1:
操作1;
break;
case 值2:
操作2;
break;
...
default:
默认操作
}
特殊
- case做的是等值比较
- case值的比较没有隐式转换
- 遇到第一条满足的分支,会将后面的分支全部执行,加上break可以跳出
switch和if的区别
-
switch..case
优点:执行效率高,运行速度快(做的是等值比较)
缺点:需要一个具体的值来进行比较
-
if
优点:可以做范围判断 缺点:执行效率慢
三目运算
作用: 简化简单的分支结构
语法
条件&&(操作);----->if(条件){操作}
条件?操作:默认操作; ------>if(条件){操作}else{}
条件1?操作1:条件2:操作2:...:默认操作; ----->if(条件1){操作1}else if(条件2){操作2}else{默认操作}
强制转换
转字符串
方法一:toString()
不可以转undefined和null,会报错
方法二:String()
任何数据类型都可以转为字符串,相当于隐式转换,本身就是隐式转换的底层逻辑,等价于+""
转数字
方法一:parseInt()
只能转字符串和数字
执行原理: 从左到右依次读取每个字符,遇到非数字字符就停止转换,如果第一个字符就为非数字字符则为NaN,不认识小数点
方法二:parseFloat()
专门用于将字符串转为小数的,且只能转字符串,执行原理与方法一相同,但是认识小数点,且只认识第一个小数点
方法三:Number()
任何类型都能转为数字类型,相当于隐式转换,等价于-0/*1//1
转布尔
Boolean()
万能,相当于隐式转换
6个为false的值
- 0
- ""空字符串
- null
- undefined
- NaN
- false