一、算术运算符
    1、算术运算符:对数值类型的变量及常量进行算数运算,也是最简单和最常用的运算符号。

    +
    -
    *
    /
    % 求余
    ** 幂运算
    ++ 自增(前置)
    ++ 自增(后置)
    自减(前置)
    自减(后置)

    2、运算法则

    • 四则混合运算,遵循 “先乘除后加减”的原则。
    • 取模运算结果的正负取决于被模数(%左边的数)的符号。
    • 尽量避免利用小数进行运算,有时可能因JavaScript的精度导致结果的偏差。
    • “+”和“-”在算术运算时还可以表示正数或负数。

    3、自增(减)运算符

    ++ 自增(前置)
    ++ 自增(后置)
    自减(前置)
    自减(后置)
    • 运算符(++或—)放在操作数前面,先进行自增或自减运算,再进行其他运算。(先自增再返回值)
    • 运算符放在操作数后面,则先进行其他运算,再进行自增或自减运算。(先返回值再自增)
    • 二者单独使用时效果是一样的,都是加一或减一
    • 递增和递减运算符仅对数值型和布尔型数据操作,会将布尔值true当做1,false当做0。

    二、比较运算符
    1、比较运算符:用来对两个数值或变量进行比较,

    运算符 运算 范例 结果
    == 等于 x == 4 false
    != 不等于 x != 4 true
    === 全等 x === 5 true
    !== 不全等 x !== ‘5’ true
    > 大于 x > 5 false
    >= 大于或等于 x >= 5 true
    < 小于 x < 5 false
    <= 小于或等于 x <= 5 true

    其结果是布尔类型的true或false。

    2、运算法则

    • 不相同类型的数据进行比较时,首先会自动将其转换成相同类型的数据后再进行比较。
    • 运算符“==”和“!=”运算符在比较时,只比较值是否相等。
    • 运算符“===”与“!==”要比较数值和其数据类型是否相等。

    三、逻辑运算符
    1、逻辑运算符:是在程序开发中用于逻辑判断的符号。其返回值类型是布尔类型。

    运算符 运算 范例 结果
    && a && b a和b都为true,结果为true,否则为false
    || a || b a和b中至少有一个为true,则结果为true,否则为false
    ! ! a 若a为false,结果为true,否则相反

    2、运算法则

    • 逻辑运算符的结合性是从左到右。
    • 当使用“&&”连接两个表达式时,如果左边表达式的值为false,则右边的表达式不会执行,逻辑运算结果为false。
    • (短路)当使用“||”连接两个表达式时,如果左边表达式的值为true,则右边的表达式不会执行,逻辑运算结果为true。
    • (短路)逻辑运算符可针对结果为布尔值的表达式进行运算。

    2022-01-18_170517.png

    四、三元运算符
    1、三元运算符:是一种需要三个操作数的运算符,运算的结果根据给定条件决定。

    2、运算法则

    • 先求条件表达式的值。
    • 如果为true,则返回表达式1的执行结果。
    • 如果条件表达式的值为false,则返回表达式2的执行结果。

    五、运算符优先级
    1、运算符的优先级:指的是在表达式中各个运算符参与运算的先后顺序

    结合方向 运算符
    ()
    . [] new(有参数,无结合性)
    new(无参数)
    ++(后置) —(后置)
    ! ~ -(负数) +(正数) ++(前置) —(前置) typeof void delete
    **
    * / %
    + -
    << >> >>>
    < <= > >= in instanceof
    == != === !==
    &
    ^
    |
    &&
    ||
    ?:
    = += = *= /= %= <<= >>= >>>= &= ^= |=
    ,
    • 同一单元格的运算符具有相同的优先级。
    • 左结合方向表示同级运算符的执行顺序为从左到右。
    • 右结合方向则表示执行顺序为从右到左。
    • 补充:圆括号()优先级别最高。例如, 4 + 3 2的 输出结果为10,(4 + 3) 2的输出结果为14。