JavaScript 运算符优先级值
 
| 值 | 运算符 | 描述 | 实例 | 
|---|
| 20 | ( ) | 表达式分组 | (3 + 4) | 
 |  |  |  | 
| 19 | . | 成员 | person.name | 
| 19 | [] | 成员 | person["name"] | 
| 19 | () | 函数调用 | myFunction() | 
| 19 | new | 创建 | new Date() | 
 |  |  |  | 
| 17 | ++ | 后缀递增 | i++ | 
| 17 | -- | 后缀递减 | i-- | 
 |  |  |  | 
| 16 | ++ | 前缀递增 | ++i | 
| 16 | -- | 前缀递减 | --i | 
| 16 | ! | 逻辑否 | !(x==y) | 
| 16 | typeof | 类型 | typeof x | 
 |  |  |  | 
| 15 | ** | 求幂 (ES7) | 10 ** 2 | 
 |  |  |  | 
| 14 | * | 乘 | 10 * 5 | 
| 14 | / | 除 | 10 / 5 | 
| 14 | % | 模数除法 | 10 % 5 | 
 |  |  |  | 
| 13 | + | 加 | 10 + 5 | 
| 13 | - | 减 | 10 - 5 | 
 |  |  |  | 
| 12 | << | 左位移 | x << 2 | 
| 12 | >> | 右位移 | x >> 2 | 
| 12 | >>> | 右位移(无符号) | x >>> 2 | 
 |  |  |  | 
| 11 | < | 小于 | x < y | 
| 11 | <= | 小于或等于 | x <= y | 
| 11 | > | 大于 | x > y | 
| 11 | >= | 大于或等于 | x >= y | 
| 11 | in | 对象中的属性 | "PI" in Math | 
| 11 | instanceof | 对象的实例 | instanceof Array | 
 |  |  |  | 
| 10 | == | 相等 | x == y | 
| 10 | === | 严格相等 | x === y | 
| 10 | != | 不相等 | x != y | 
| 10 | !== | 严格不相等 | x !== y | 
 |  |  |  | 
| 9 | & | 按位与 | x & y | 
| 8 | ^ | 按位 XOR | x ^ y | 
| 7 | | | 按位或 | x | y | 
| 6 | && | 逻辑与 | x && y | 
| 5 | || | 逻辑否 | x || y | 
| 4 | ? : | 条件 | ? "Yes" : "No" | 
 |  |  |  | 
| 3 | = | 赋值 | x = y | 
| 3 | += | 赋值 | x += y | 
| 3 | -= | 赋值 | x -= y | 
| 3 | *= | 赋值 | x *= y | 
| 3 | %= | 赋值 | x %= y | 
| 3 | <<= | 赋值 | x <<= y | 
| 3 | >>= | 赋值 | x >>= y | 
| 3 | >>>= | 赋值 | x >>>= y | 
| 3 | &= | 赋值 | x &= y | 
| 3 | ^= | 赋值 | x ^= y | 
| 3 | |= | 赋值 | x |= y | 
 |  |  |  | 
| 2 | yield | 暂停函数 | yield x | 
| 1 | , | 逗号 | 7 , 8 | 
| 运算符 | 描述 | 
|---|
| == | 等于 | 
| === | 等值等型 | 
| != | 不相等 | 
| !== | 不等值或不等型 | 
| > | 大于 | 
| < | 小于 | 
| >= | 大于或等于 | 
| <= | 小于或等于 | 
| ? | 三元运算符 | 
 
| 运算符 | 描述 | 
|---|
| typeof | 返回变量的类型。 | 
| instanceof | 返回 true,如果对象是对象类型的实例。 | 
| 运算符 | 描述 | 例子 | 等同于 | 结果 | 十进制 | 
|---|
| & | 与 | 5 & 1 | 0101 & 0001 | 0001 | 1 | 
| | | 或 | 5 | 1 | 0101 | 0001 | 0101 | 5 | 
| ~ | 非 | ~ 5 | ~0101 | 1010 | 10 | 
| ^ | 异或 | 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 | 
| << | 零填充左位移 | 5 << 1 | 0101 << 1 | 1010 | 10 | 
| >> | 有符号右位移 | 5 >> 1 | 0101 >> 1 | 0010 | 2 | 
| >>> | 零填充右位移 | 5 >>> 1 | 0101 >>> 1 | 0010 | 2 | 
上例使用 4 位无符号的例子。但是 JavaScript 使用 32 位有符号数。
 
因此,在 JavaScript 中,~ 5 不会返回 10,而是返回 -6。
 
~00000000000000000000000000000101 将返回 11111111111111111111111111111010。
 
| 运算符 | 描述 | 
|---|
| + | 加法 | 
| - | 减法 | 
| * | 乘法 | 
| / | 除法 | 
| % | 取模(余数) | 
| ++ | 递加 | 
| -- | 递减 |