JavaScript - 运算符



什么是运算符?

在 JavaScript 中,运算符是对一个或多个操作数(例如变量或值)执行操作并返回结果的符号。让我们举一个简单的表达式 4 + 5 等于 9。这里 4 和 5 称为操作数,'+' 称为运算符

JavaScript 支持以下类型的运算符

  • 算术运算符
  • 比较运算符
  • 逻辑(或关系)运算符
  • 按位运算符
  • 赋值运算符
  • 其他运算符

让我们逐个查看所有运算符。

JavaScript 算术运算符

JavaScript 算术运算符用于对数字执行数学计算,例如加法、乘法、减法、除法等。JavaScript 支持以下算术运算符 -

假设变量 x 为 10,变量 y 为 20,则 −

运算符 描述 示例
+ (加法) 添加两个操作数。 x + y 将得到 30
- (减法) 从第一个操作数中减去第二个操作数。 x - y 将得到 -10
* (乘法) 将两个操作数相乘。 x * y 将得到 200
/ (除法) 将分子除以分母。 y / x 将得到 2
% (余数) 输出整数除法的余数。 y % x 将得到 0
++ (递增) 将整数值增加 1。 x++ 将得到 11
-- (递减) 将整数值减少 1。 x-- 将得到 9

加法运算符 (+) 适用于 Numeric 和 Strings。例如,“a” + 10 将得到 “a10”。

JavaScript 比较运算符

JavaScript 比较运算符比较两个值并返回布尔结果(true 或 false)。JavaScript 支持以下比较运算符 -

假设变量 x 为 10,变量 y 为 20,则 −

运算符 描述 示例
== (等于) 检查两个操作数的值是否相等。如果是,则条件变为 true。 (x == y) 不为 true
!= (不等于) 检查两个操作数的值是否相等。如果值不相等,则条件变为 true。 (x != y) 为 true
=== (严格相等) 它检查变量的值和数据类型是否相等。如果是,则条件变为 true。 (x === y) 不为 true
!== (严格不相等) 它检查变量的值和数据类型是否相等。如果值不相等,则条件变为 true。 (x !== y) 为 true
> (大于) 检查左操作数的值是否大于右操作数的值。如果是,则条件变为 true。 (x > y) 不为 true
< (小于) 检查左操作数的值是否小于右操作数的值。如果是,则条件变为 true。 (x < y) 为 true
>= (大于或等于) 检查左操作数的值是否大于或等于右操作数的值。如果是,则条件变为 true。 (x >= y) 不为true
<= (小于或等于) 检查左操作数的值是否小于或等于右操作数的值。如果是,则条件变为 true。 (x <= y) 为 true

JavaScript 逻辑运算符

逻辑运算符通常用于对布尔值执行逻辑运算。但是逻辑运算符可以应用于任何类型的值,而不仅仅是布尔值。

JavaScript 支持以下逻辑运算符 -

假设 x 的值为 10 且 y 为 0。

运算符 描述 示例
&& (逻辑 AND) 如果两个操作数都为非零,则条件变为 true (x && y) 为 false
|| (逻辑 OR) 如果两个操作数中的任何一个不为零,则条件变为 true。 (x || y) 为 true.
! (逻辑 NOT) 反转其操作数的逻辑状态。如果条件为 true,则逻辑 NOT 运算符将使其为 false。 !x 为 false.

JavaScript 位运算符

JavaScript 位运算符用于对整数执行位级运算。JavaScript 支持以下七种类型的按位运算符 -

假设变量 x 为 2,变量 y 为 3,则 −

运算符 描述 示例
& (Bitwise AND) 对其整数参数的每个位执行布尔 AND 运算。 (x & y)是 2
| (Bitwise OR) 对其整数参数的每个位执行布尔 OR 运算。 (x | y) 为 3
^ (Bitwise XOR) 对其整数参数的每个位执行布尔异 OR 运算。异或表示操作数 1 为 true,操作数 2 为 true,但不能同时表示两者。 (x ^ y) 为 1
~ (Bitwise Not) 是一个一元运算符,通过反转操作数中的所有位来操作。 (~y) 为 -4
<< (Left Shift) 将第一个操作数中的所有位向左移动第二个操作数中指定的位数。新位用零填充。将值向左移动一个位置等效于将其乘以 2,移动两个位置等效于乘以 4,依此类推。 (x << 1) 为 4
>> (Right Shift) 二进制右移运算符。左操作数的值将右操作数右移动。 (x >> 1) 为 1
>>> (Right shift with Zero) 此运算符与 >> 运算符类似,不同之处在于向左移入的位始终为零。 (x >>> 1) 为 1

JavaScript 赋值运算符

在 JavaScript 中,赋值运算符用于为变量赋值。JavaScript 支持以下赋值运算符 -

运算符 描述 示例
= (简单赋值) 将值从右侧操作数分配给左侧操作数 z = x + y 会将 x + y 的值分配给 z
+= (添加并赋值) 将右操作数添加到左操作数,并将结果分配给左操作数。 z += x 等同于 z = z + x
−= (减去并赋值) 将从左操作数中减去右操作数,并将结果分配给左操作数。 z -= x 等同于 z = z - x
*=(乘法并赋值) 将右操作数与左操作数相乘,并将结果分配给左操作数。 z *= x 等同于 z = z * x
/= (除法并赋值) 将左操作数与右操作数相除,并将结果分配给左操作数。 z /= x 等同于 z = z / x
%= (余数并赋值) 使用两个操作数取余数,并将结果分配给左操作数。 z %= x 等同于 z = z % x

相同的逻辑也适用于 Bitwise 运算符,因此它们将变为 <<=、>>=、>>=、&=、|= 和 ^=。

JavaScript 杂项运算符

JavaScript 支持的其他运算符很少。这些运算符是条件运算符 (? :)、typeof 运算符delete 运算符等。

在下表中,我们给出了 JavaScript 杂项运算符及其解释。

运算符 描述
? : (有条件) 如果 条件 为 true?则值 X : 否则值 Y
typeof 返回操作数的数据类型。
?? (Nullish 合并运算符) 当左侧操作数为 null 或未定义时,它将返回其右侧操作数,否则返回其左侧操作数。
delete 从对象中删除属性。
, (逗号) 计算其操作数(从左到右)并返回最后一个操作数的值。
() (分组) 允许更改运算符的优先级。
yield 用于暂停和恢复生成器函数。
… (扩展) 用于扩展可迭代对象,例如数组或字符串。
** (幂) 将左操作数提高到右操作数的幂