一、if分支语句
1. if单分支
只有一个选择,选择执行或不执行
if(age>18){
alert("成年了")
}
2. if双分支
有两个选择,条件满足的时候选择1,条件不满足的时候选择2
if(age>18){
alert("成年了");
}else{
alert("未成年");
}
3. if多分支
表示有很多的选择,满足某个条件就去执行对应的代码
var score = Number(prompt("请输入成绩:"))
if(isNaN(score)){
alert("输入不正确");
}
else{
if(score>=0 && score<60){
alert("不及格");
}
else if(score>=60 && score<100){
alert("及格");
}
else{
alert("输入不正确");
}
}
4. if分支嵌套
分支进行嵌套使用,表示有多个选择
var a,b,c;
if(a>b){
if(a>c){
alert("变量a最大");
}
else{
alert("变量c最大");
}
}
else{
if(b>c){
alert("变量b最大");
}
else{
alert("变量c最大");
}
}
5. if分支的细节
//1. if条件的结果是布尔值,所以可以将布尔值当做条件放入if的小括号中
if(true){
alert("真");
}
else{
alert("假");
}
//2. 如果将别的非布尔值的表达式或者数据放入条件括号中,会发生隐形的类型转换
if(2){//这里的2被转换成了布尔值
console.log(2);
}
二、switch分支语句
switch:控制开关,也可以叫做多路判断、case穿透
case穿透:表示多个条件是一样的时候可以执行相同的代码段,可以省略掉break一直往下执行
//switch语法
switch(变量){
case 值1:
变量和值1相等的时候执行的代码块
break;
case 值2:
变量和值2相等的时候执行的代码块
break;
...
default:
不满足条件时候执行代码块
}
- case理解为if来判断这个变量是否等于某个值
- break表示当前分支执行后就结束switch的运行,后续代码不再运行
- default可以理解为判断语句中的else
使用场景:
- 如果判断的条件比较复杂,使用if分支
- 条件是确定的值,分两种情况
- 如果判断的分支小于等于3个,使用if,此时的效率和switch一样
- 如果大于3个,就使用switch
- switch判断使用的是全等于(===)
三、三元运算符
-
概念:是if else的简写方式,还可以称为三目运算符
-
语法:判断条件 ? 条件为true时候执行的代码 : 条件为false时候执行的代码
判?真:假
a>b ? console.log(a) : console.log(b)
案例:判断3个变量之间的大小
a=6;b=5;c=3
a>b?(a>c?alert("a是最大值"):alert("c是最大值")):(b>c?alert("b是最大值"):alert("c是最大值"))
四、隐式类型转换
- 使用Number()、parseInt()这些方法进行转换的都是显式转换
- 有一些运算会偷偷的进行类型转换,叫做隐式转换
-
数学运算:只有数字类型才能进行数学运算,有一些特殊情况
- 两个变量都是字符串的时候,使用加号会进行字符串的拼接
- 如果在加号的一边有一个是字符串,先转换成字符串再进行拼接
- 除了加号以外其他的符号会隐式转换,转换为数字类型进行计算
var a=2,b='1' console.log(a+b) //'21' console.log(a-b) //1 //少见情况 var c,c1=null console.log(c+c1) //NaN
-
比较运算
- 数字和字符串之间的比较,字符串隐式转换为数字类型进行比较
- 当字符串里面是中文汉字或是特殊符号时,根据ASCII和unicode码表进行比较
//特殊情况,NaN无法进行比较,也无法跟自己进行比较 console.log(NaN==NaN)//false
VSCODE插件:Bracket Pair Colorizer 调括号的颜色