操作符
操作符是 JavaScript 中用于执行操作的符号。根据操作数的数量,操作符可以分为以下几类:
赋值运算符
赋值运算符用于将值分配给变量。最基本的赋值运算符是等号 =,它将右侧的值分配给左侧的变量。
let a = 10
let b = 20
let c = a + b
console.log(c) // 30
c += 10
console.log(c) // 40 等同于 c = c + 10
c -= 10
console.log(c) // 30 等同于 c = c - 10
c *= 2
console.log(c) // 60 等同于 c = c * 2
算术运算符
算术运算符用于执行基本的数学运算,包括加法、减法、乘法、除法和取余。
let a = 10
let b = 20
console.log(a + b) // 30
console.log(a - b) // -10
console.log(a * b) // 200
console.log(a / b) // 0.5
console.log(a % b) // 10
比较运算符
比较运算符用于比较两个值,并返回一个布尔值(true 或 false)。
let a = 10
let b = 20
console.log(a < b) // true
console.log(a > b) // false
console.log(a <= b) // true
console.log(a >= b) // false
console.log(a == b) // false
console.log(a != b) // true
逻辑运算符
逻辑运算符用于执行逻辑操作,包括与(&&)、或(||)和非(!)。
let a = true
let b = false
console.log(a && b) // false
console.log(a || b) // true
console.log(!a) // false
位运算符
位运算符用于对二进制位进行操作,包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)、左移(<<)、右移(>>)和无符号右移(>>>)。
let a = 5 // 二进制表示为 00000101
let b = 3 // 二进制表示为 00000011
console.log(a & b) // 1 (按位与)
console.log(a | b) // 7 (按位或)
console.log(~a) // -6 (按位非)
console.log(a ^ b) // 6 (按位异或)
console.log(a << 1) // 10 (左移)
console.log(a >> 1) // 2 (右移)
console.log(a >>> 1) // 2 (无符号右移)
其他运算符
其他运算符包括条件运算符(? :)、逗号运算符(,)和 typeof 运算符。
let a = 10
let b = 20
let c = a > b ? a : b
console.log(c) // 20
console.log(a, b) // 10, 20
console.log(typeof a) // 'number'
运算符优先级
运算符优先级决定了在表达式中哪些操作先被执行。运算符依次执行,优先级高的操作符会先被执行。
运算符优先级表如下:
| 运算符 | 描述 |
|---|---|
() | 括号 |
++, -- | 自增、自减 |
!, ~, ++, -- | 逻辑非、按位非、自增、自减 |
*, /, % | 乘法、除法、取余 |
+, - | 加法、减法 |
<<, >>, >>> | 左移、右移、无符号右移 |
<, <=, >, >= | 小于、小于等于、大于、大于等于 |
==, !=, ===, !== | 等于、不等于、严格等于、严格不等于 |
& | 按位与 |
^ | 按位异或 |
丨 | 按位或 |
&& | 逻辑与 |
丨丨 | 逻辑或 |
? : | 条件运算符 |