常见的JavaScript运算符 | 青训营笔记

87 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第5天

算数运算符

浮点数

  • 浮点数在算术运算里面经常会产生多余的小数误差

    所以不要直接拿浮点数去比较是否相等,因为浮点数在小数点很后面的位置有误差,所以拿去比较的话结果会是false

image-20210718164000335

前置自增和后置自增

前置自增:该次加减之前生效

后置自增:该次加减之前不生效

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. 条件表达式 ? 表达式1 : 表达式2
  2. 条件表达式为1,则执行表达式1;否则执行表达式2
  • 表达式是有返回值的,如果这个返回值有多处需要使用,一般把它赋值给一个变量;
  • 如果你只要输出的话,那就可以直接写到console.log里面去,少写1行代码
console.log(name === '刘德华' ? 1 : 0);