一、算术运算符
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。
- (短路)逻辑运算符可针对结果为布尔值的表达式进行运算。

四、三元运算符
1、三元运算符:是一种需要三个操作数的运算符,运算的结果根据给定条件决定。
2、运算法则
- 先求条件表达式的值。
- 如果为true,则返回表达式1的执行结果。
- 如果条件表达式的值为false,则返回表达式2的执行结果。
五、运算符优先级
1、运算符的优先级:指的是在表达式中各个运算符参与运算的先后顺序
| 结合方向 | 运算符 |
|---|---|
| 无 | () |
| 左 | . [] new(有参数,无结合性) |
| 右 | new(无参数) |
| 无 | ++(后置) —(后置) |
| 右 | ! ~ -(负数) +(正数) ++(前置) —(前置) typeof void delete |
| 右 | ** |
| 左 | * / % |
| 左 | + - |
| 左 | << >> >>> |
| 左 | < <= > >= in instanceof |
| 左 | == != === !== |
| 左 | & |
| 左 | ^ |
| 左 | | |
| 左 | && |
| 左 | || |
| 右 | ?: |
| 右 | = += = *= /= %= <<= >>= >>>= &= ^= |= |
| 左 | , |
- 同一单元格的运算符具有相同的优先级。
- 左结合方向表示同级运算符的执行顺序为从左到右。
- 右结合方向则表示执行顺序为从右到左。
- 补充:圆括号()优先级别最高。例如, 4 + 3 2的 输出结果为10,(4 + 3) 2的输出结果为14。
