这是我参与「第四届青训营 」笔记创作活动的的第5天
算数运算符
浮点数
-
浮点数在算术运算里面经常会产生多余的小数误差
所以不要直接拿浮点数去比较是否相等,因为浮点数在小数点很后面的位置有误差,所以拿去比较的话结果会是false
前置自增和后置自增
前置自增:该次加减之前生效
后置自增:该次加减之前不生效
var a = 10;
var b = a++ + ++a ; // e++ =10 , e=11 ; ++e =12 , e=12
console.log(b); //10 + 12 = 22
比较运算符
比较运算符,其返回值一定是0或1
| 运算符名称 | 说明 | 案例 | 结果 |
|---|---|---|---|
| === !== | 全等:要求值和数据类型都一致 | 37 === '37' | false |
逻辑运算符(&& || !)
逻辑运算符是用来进行布尔值运算的运算符,其返回值不一定是0或1!
因为与&&运算和或||运算有短路运算的特性:
当** 表达式1 && 表达式2 表达式1 || 表达式2 ** 时
| 表达式1为真 | 表达式1为假 | |
|---|---|---|
| 与&& | 返回表达式2 | 返回表达式1,表达式2不执行 |
| 或|| | 返回表达式1,表达式2不执行 | 返回表达式2 |
而这里面的表达式,可以是123、 ''、NaN、null、undefined 的!
赋值运算符
=、+=、-=、*=、/=、%=
运算符优先级
| 优先级 | 运算符 | 顺序 |
|---|---|---|
| 1 | 小括号 | () |
| 2 | 一元运算符 | 先! 后++ -- |
| 3 | 算数运算符 | 先* / % 后 + - |
| 4 | 关系运算符 | > >= < <= |
| 5 | 相等运算符 | == != === !== |
| 6 | 逻辑运算符(作为分隔的标志) | 先&& 后|| |
| 7 | 赋值运算符 | = |
| 8 | 逗号运算符 | , |
多分支语句
if else if判断条件简化
比如,使用多分支语句(if else if else if...)判断成绩档次时:
第一个if(score>=90){}
第二个if就没必要要写90>score>=80了,直接写if(score>=80){}
因为肯定是没大于等于90的才会进入下一个if,没必要再判断
switch
适用情况:
- 当针对变量的特定值设置一系列选项时,就可以用switch
- switch是直接根据值跳转到对应选项,所以执行效率比if高,因为if是从上往下挨个找的
注意事项:
- 变量需要和case后面的值全等才能执行
- 每个case最后跟的break必须有,否则会继续执行接下去的case
switch(变量){
case 1:
执行语句;
break;
case 2:
执行语句;
break;
case 3:
执行语句;
break;
default:
执行语句;
}
▲三元表达式 ? :
一元表达式: a++、a--
二元表达式:算数运算
三元表达式:
条件表达式 ? 表达式1 : 表达式2- 条件表达式为1,则执行表达式1;否则执行表达式2
- 表达式是有返回值的,如果这个返回值有多处需要使用,一般把它赋值给一个变量;
- 如果你只要输出的话,那就可以直接写到console.log里面去,少写1行代码
console.log(name === '刘德华' ? 1 : 0);