Javascript 简明教程
JavaScript - Operators
What is an Operator?
在 JavaScript 中, operator 是一个符号,它对一个或多个操作数(例如变量或值)执行操作,并返回结果。让我们采用一个简单的表达式 4 + 5 等于 9。此处,4 和 5 称为 operands ,“+”称为 operator 。
JavaScript 支持以下类型的运算符。
-
Arithmetic Operators
-
Comparison Operators
-
Logical (or Relational) Operators
-
Bitwise Operators
-
Assignment Operators
-
Miscellaneous Operators
我们逐一了解所有运算符。
JavaScript Arithmetic Operators
JavaScript 算术运算符用于对数字执行加法、乘法、减法、除法等数学运算。JavaScript 支持以下算术运算符 −
假设变量 x 为 10,变量 y 为 20,则 −
Operator |
Description |
Example |
+ (Addition) |
Adds two operands. |
x + y 将得到 30。 |
- (Subtraction) |
减去第一个操作数的第二个操作数。 |
x - y 将得到 -10。 |
* (Multiplication) |
Multiplies both operands. |
x * y 将得到 200。 |
/ (Division) |
将分子除以分母。 |
y / x 将得到 2。 |
% (Modulus) |
输出整数除法的余数。 |
y % x 将得到 0 |
++ (Increment) |
将一个整数值增加 1。 |
x++ will give 11. |
— (Decrement) |
将一个整数值减少 1。 |
x-- will give 9. |
JavaScript Comparison Operators
JavaScript 比较运算符将比较两个值并返回一个布尔结果(真或假)。JavaScript 支持以下比较运算符 −
假设变量 x 为 10,变量 y 为 20,则 −
Operator |
Description |
Example |
== (Equal) |
检查两个操作数的值是否相等。如果相等,则条件变为真。 |
(x == y) 为假。 |
!= (Not Equal) |
检查两个操作数的值是否相等。如果值不相等,则条件变为真。 |
(x != y) 为真。 |
=== (Strict equality) |
它检查变量的值和数据类型是否相等。如果是,条件将变为 true。 |
(x === y) 不是 true。 |
!== (Strict inequality) |
它检查变量的值和数据类型是否相等。如果值不相等,条件将变为 true。 |
(x !== y) 为 true。 |
> (Greater than) |
检查左操作数的值是否大于右操作数的值。如果是,条件将变为 true。 |
(x > y) 不是 true。 |
< (Less than) |
检查左操作数的值是否小于右操作数的值。如果是,条件将变为 true。 |
(x < y) 为 true。 |
>=(大于或等于) |
检查左操作数的值是否大于或等于右操作数的值。如果是,条件将变为 true。 |
(x >= y) 不是 true。 |
⇐(小于或等于) |
检查左操作数的值是否小于或等于右操作数的值。如果是,条件将变为 true。 |
(x ⇐ y) 为 true。 |
JavaScript Logical Operators
逻辑运算符通常用于对布尔值执行逻辑运算。但逻辑运算符可以应用于任何类型的值,不只是布尔值。
JavaScript 支持以下逻辑运算符:
假设 x 的值为 10, y 的值为 0。
Operator |
Description |
Example |
&& (Logical AND) |
如果两个操作数都是非零,条件将变为 true。 |
(x && y) 为 false |
(Logical OR) |
||
如果任一操作数不等于零,则该条件变为真。 |
(x |
|
y) is true. |
! (Logical NOT) |
逆转其操作数的逻辑状态。如果一个条件为真,则逻辑非操作符会将其设为假。 |
JavaScript Bitwise Operators
JavaScript 按位运算符用于对整数执行按位运算。JavaScript 支持以下七种按位运算符 −
假设变量 x 等于 2 且变量 y 等于 3,则 −
Operator |
Description |
Example |
& (Bitwise AND) |
对每个整数参数执行布尔与运算。 |
(x & y) 为 2。 |
(Bitwise OR) |
对每个整数参数执行布尔或运算。 |
|
(x |
y) is 3. |
^ (Bitwise XOR) |
对每个整数参数执行布尔异或运算。异或表示任一操作数一为真或操作数二为真,但两者不能同时为真。 |
(x ^ y) 为 1。 |
~ (Bitwise Not) |
它是一个一元运算符,通过逆转操作数中的所有位进行运算。 |
(~y) is -4. |
<< (Left Shift) |
将第一个操作数中的所有位向左移动第二个操作数中指定的位置数。新的位用零填充。将值左移一位相当于将其乘以 2,移动两位相当于乘以 4,依此类推。 |
(x << 1) 为 4。 |
>> (Right Shift) |
二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 |
(x >> 1) 为 1。 |
>>>(右移并置零) |
JavaScript Assignment Operators
在 JavaScript 中,赋值运算符用于将值赋给变量。JavaScript 支持以下赋值运算符 −
Operator |
Description |
Example |
= (Simple Assignment) |
将右侧操作数的值赋值给左侧操作数 |
z = x + y 将 x + y 的值赋值给 z |
+= (Add and Assignment) |
它将右侧操作数添加到左侧操作数并将其结果赋值给左侧操作数。 |
z += x 相当于 z = z + x |
−= (Subtract and Assignment) |
它从左操作数中减去右操作数并将结果分配给左操作数。 |
z -= x 相当于 z = z - x |
*=(Multiply and Assignment) |
它将右操作数与左操作数相乘并将结果分配给左操作数。 |
z *= x 相当于 z = z * x |
/= (Divide and Assignment) |
它将左操作数除以右操作数并将结果分配给左操作数。 |
z /= x 相当于 z = z / x |
%= (Modules and Assignment) |
它使用两个操作数进行取模并将结果分配给左操作数。 |
z %= x 相当于 z = z % x |
JavaScript Miscellaneous Operators
JavaScript 支持其他少数几个操作符。这些操作符是 conditional 操作符 (? :)、 typeof 操作符、 delete 操作符等。
在下表中,我们给出了 JavaScript 杂项操作符及其说明。
Operator |
Description |
? : (Conditional ) |
如果条件为真?则值 X:否则值 Y |
typeof |
返回操作数的数据类型。 |
?? (Nullish Coalescing Operator) |
如果其左手侧操作数为 null 或 undefined,则返回其右手侧操作数,否则返回其左手侧操作数。 |
delete |
从对象中移除属性。 |
, (Comma) |
计算其操作数(从左到右)并返回最后一个操作数的值。 |
() (Grouping) |
允许更改操作符优先级。 |
yield |
用于暂停和恢复生成器函数。 |
… (Spread) |
用于扩展如数组或字符串之类的可迭代对象。 |
** (Exponentiation) |
将左操作数乘方到右操作数 |