1.一元运算符
| 运算符 | 名称 | 描述 | 
| +a | 求正 | a的值本身。 | 
| -a | 求负 | a的负值。 | 
| ++a | 前递增 | a的值加 1,然后返回a。 | 
| --a | 前递减 | a的值减 1,然后返回a。 | 
| a++ | 后递增 | 返回 a,然后将a的值加 1。 | 
| a-- | 后递减 | 返回 a,然后将a的值减 1。 | 
2.算术运算符
| 运算符 | 名称 | 
| a + b | 加法,字符串连接。 | 
| a - b | 减法 | 
| a * b | 乘法 | 
| a / b | 除法 | 
| a % b | 求余 | 
| a ** b | 求幂 | 
3.赋值运算符
| 运算符 | 名称 | 
|---|---|
| a = b | 赋值 | 
| a += b | 加法赋值,字符串连接赋值。 | 
| a -= b | 减法赋值 | 
| a *= b | 乘法赋值 | 
| a /= b | 除法赋值 | 
| a %= b | 求余赋值 | 
| a **= b | 求幂赋值 | 
| a &&= b | 逻辑与赋值 | 
| a ||= b | 逻辑或赋值 | 
| a &= b | 按位与赋值 | 
| a |= b | 按位或赋值 | 
| a ^= b | 按位异或赋值 | 
| a <<= b | 左移位赋值 | 
| a >>= b | 有符号右移位赋值 | 
| a >>>= b | 无符号右移位赋值 | 
4.相等性运算符
| 运算符 | 名称 | 描述 | 
| a == b | 相等 | 先进行强制类型转换,再比较 a和b的值。如果值相等,则返回true,否则返回false。 | 
| a != b | 不相等 | 与 ==运算符相反。 | 
| a === b | 全等 | 不进行强制类型转换,再比较 a和b的类型和值。如果类型和值全相等,则返回true,否则返回false。 | 
| a !== b | 不全等 | 与 ===运算符相反。 | 
5.关系比较运算符
| 运算符 | 名称 | 描述 | 
|---|---|---|
| a < b | 小于 | 先进行强制类型转换,再比较 a和b的值。如果a小于b,则返回true,否则返回false。 | 
| a <= b | 小于或等于 | 先进行强制类型转换,再比较 a和b的值。如果a小于或等于b,则返回true,否则返回false。 | 
| a > b | 大于 | 先进行强制类型转换,再比较 a和b的值。如果a大于b,则返回true,否则返回false。 | 
| a >= b | 大于或等于 | 先进行强制类型转换,再比较 a和b的值。如果a大于或等于b,则返回true,否则返回false。 | 
6.布尔逻辑运算符
| 运算符 | 名称 | 描述 | 
|---|---|---|
| !a | 逻辑非(NOT) | 如果 a的计算结果为false,则返回true,否则返回false。 | 
| a && b | 逻辑与(AND) | 如果 a的计算结果为false,则不计算b并返回a的返回值。如果a的计算结果为true,则继续计算b并返回b的返回值。 | 
| a || b | 逻辑或(OR) | 如果 a的计算结果为true,则不计算b并返回a的返回值。如果a的计算结果为false,则继续计算b并返回b的返回值。 | 
7.位运算符
| 运算符 | 名称 | 
|---|---|
| ~a | 按位非 NOT | 
| a & b | 按位与 AND | 
| a | b | 按位或 OR | 
| a ^ b | 按位异或 XOR | 
| a << b | 左移位 | 
| a >> b | 有符号右移位 | 
| a >>> b | 无符号右移位 | 
8.三元条件运算符
| 运算符 | 描述 | 
| a ? b : c | 如果 a的计算结果为true,则返回b,否则返回c。 | 
9.分组运算符
| 运算符 | 描述 | 
| () | 分组作用 | 
10.可选链运算符
| 运算符 | 描述 | 
| o?.a | 如果 o为null或undefined,则不计算a并返回undefined,否则o?.a的结果与o.a的结果相同。 | 
| o?.[a] | 如果 o为null或undefined,则不计算a并返回undefined,否则o?.[a]的结果与o[a]的结果相同。 | 
| f?.(a) | 如果 f为null或undefined,则不计算a并返回undefined,否则f?.(a)的结果与f(a)的结果相同。注意:?.不会检测f是不是函数。 | 
11.Null运算符
| 运算符 | 描述 | 
| a ?? b | 如果 a为null或undefined,则返回b,否则返回a。 | 
| a ??= b | 如果 a为null或undefined,则将b赋值给a,否则a还是原来的值。 | 
12.delete运算符
| 运算符 | 描述 | 
| delete o.a | 用于从对象中删除属性。 | 
13.in运算符
| 运算符 | 描述 | 
| a in o | 如果指定属性在指定对象里,则返回 true,否则返回false。 | 
14.instanceof运算符
| 运算符 | 描述 | 
| o instanceof C | 测试是否 o是C的实例,如果是,则返回true,否则返回false。 | 
15.typeof运算符
| 运算符 | 描述 | 
| typeof a | 返回一个字符串,该字符串表示操作数的类型。 | 
| 类型 | 描述 | 
| Number | "number" | 
| BigInt | "bigint" | 
| Boolean | "boolean" | 
| String | "string" | 
| Symbol | "symbol" | 
| Undefined | "undefined" | 
| Null | "object" | 
| Function(实现ECMA-262术语中的[[Call]];类也是函数) | "function" | 
| 任何其它对象 | "object" | 
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/javascript/javascriptlang/1944.html
 
                