算术运算符
+(加法),-(减法),*(乘法),/(除法),%(取模),++(自增一),--(自减一)
++和--是单目运算符(一元运算符)
双目运算符:操作符 运算符 操作数
单目运算符:操作数 运算符
++和--单独使用 放在操作数的前后没有区别 只有一个运算符的时候放在前后没有区别
如果参与其他运算:
1放在操作数前面 则先进行自增一 然后把自增后的结果给其他运算式使用
2放在操作数后面 先将本身的结果给其他运算式使用 然后跑一边去自增一
赋值运算符: = += -= *= /= %=
等于,加等,减等,乘等,除等,模等
逻辑运算符:&&(逻辑与), ||(逻辑或),!(非运算)
&&:全真才真,一假既假
console.log( true && true ); 结果 true
console.log( true && false ); 结果 false
||:全假才假,一真既真
console.log( true || true ); 结果 true
console.log( true || false ); 结果 true
console.log( false || false ); 结果 false
逻辑运算一般会操作比较运算符(关系运算符)
js中 逻辑与&& 和 逻辑或|| 具有短路效果
与运算&& 如果出现false 则后面的不在参与运算直接返回false
或运算|| 如果出现true 则后面的不在参与运算直接返回true
逻辑运算不只能够运算布尔表达式或者布尔值 还能进行其他运算
逻辑运算中 如果进行的是非布尔值的运算 那么运算规则如下:
如果是非布尔值的其他类型的值
除了邪恶六兄弟以外 其他所有的值都当作true来对待
邪恶六兄弟:false "" 0 undefined NaN null
非运算:
不管操作数什么类型 结果都返回布尔值
选择结构之if语句
格式:
第一种: if(表达式){
语句体
}
如果表达式的结果是非布尔值类型 则自动转换成布尔类型
如果表达式的结果为真则执行语句体
执行流程:
先运行表达式 看他的结果是true还是false
如果是false则语句体不执行 反之是true则执行
第二种: if(表达式){
语句体1
}else{
语句体2
}
执行流程:
先运行表达式 看他的结果是true还是false
如是true则执行语句体1,是false则执行语句体2
第三种: if(表达式 1){
语句体1
}else if(表达式2){
语句体2
}else if(表达式3){
语句体3
}
.
.
else{
语句体n
}
执行流程:先运行表达式1 看他结果true还是false
如是true 则执行语句体1 如是false 则继续往下判断表达式2 是true就执行 否则一直往 下判断 如表达式都为false 则执行else语句体(最后一个)
switch 分支语句:
switch(表达式或者变量){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break
.
.
case 值n:
语句体n;
break;
default:
语句体n+1;
break;
运行表达式或者变量 看它值是多少 和case分支的值进行比较(===)
如比较结果是true 则执行当前case分支的语句体 然后swtich语句结束
如果所有case分支都不匹配 则执行default语句体
注意点:分支里面的break不能省略 否则出现了case穿透
case分支可以重复 但是没有意义 智慧匹配第一个
三目运算符:
var 变量 = 表达式?值1:值2
先运行表达式看他结果是true还是false 如是true则取表达式的取值1 如是false则取表达式取值2
if语句:范围的判断 固定值的判断
switch语句:固定值的判断
三目运算符:只能返回指定的值 而不能执行一段语句体