1.分支语句:
(1)if语句:
1.单分支
if(条件-最终结果必须是布尔型){
条件如果是true,就执行这里的代码
}
2.双分支
if(结果是布尔类型的条件){
条件是true的时候执行的代码
}else{
条件是false的时候执行的代码
}
3.多分支
if(条件){
条件是true的时候执行的代码
}else if(条件2){
如果条件2是true的时候执行的代码
}else if(条件3){
如果条件3是true的时候执行的代码
}...
0 , -0, NaN, undefined, ' ' , null, false,这些值放在if里会转换成false
多分支的最后也可以有一个else,来表示上述条件都不成立
简写扩展:1.条件可以直接放一个布尔值
2.如果大括号中只有一行打码,那么这个大括号可以省略
(2)switch语句:
switch(变量-得到一个值){
case值1:
如果小括号中的值和值1相等,就执行的语句
break;
case值2:
如果小括号中的值和值2相等,就执行的语句
break;
case值3:
如果小括号中的值和值3相等,就执行的语句
break;
default:
上述条件都不满足执行的语句
}
switch的判断就是判断是否相等的,并且判断相等使用===来进行的
2.分支结构的嵌套:
例:定义三个变量,求出三个值中的最大值。
var a,b,c;
if(a>b){
if(a>c){
alert("变量a最大");
}else{
alert("变量c最大");
}
}else{
if(b>c){
alert("变量b最大");
}else{
alert("变量c最大");
}
}
3.类型的隐式转换:
(1)字符串拼接的时候
+号左右两边有一个是字符串,另一个也会悄悄地转换成字符串
(2) 数学运算的时候
除了+法的数学运算,别的数学运算,都会将两边的数据转换成数字进行运算
(3)进行比较的时候
1. 比较运算的时候,左右两边只要有一个是数字,另一个也会转成数字进行比较
2. 如果两边都不是数字,则不能进行比较
3. 如果字符串转成数字成了NaN
NaN和任何数字都没办法比较大小,跟任何数字比较都是false
NaN自己也不等于自己
NaN的类型是数字
(4)将数据放到分支结构中作为条件的时候
()中的值会转为布尔值
4.逻辑运算的高级用法:
短路运算
1.|| 或者:如果第一个值是false,就把第二个值赋给变量;如果第一个值是true,就把第一个值赋值给变量
2.&& 并且:如果第一个值是false,就把第一个值赋给变量,如果第一个是true,还会运行第二个值,就把第二个值赋给变量
5.三元运算/三目运算:
语法:
条件 ? 条件为true时要执行的代码 :条件为false时要执行的代码
注意:
1.三元运算符只能简化双分支,不能简化单分支和多分支
2.三元运算符可以将整个表达式当做一个值输出
console.log(条件?条件为true时要执行的代码 :条件为false时要执行的代码)
3.三元运算符可以将整个表达式当做一个值赋值给一个变量
var c =条件?条件为true时要执行的代码 :条件为false时要执行的代码
console.log(c)