Javascript 简明教程

JavaScript - Operators

What is an Operator?

在 JavaScript 中, operator 是一个符号,它对一个或多个操作数(例如变量或值)执行操作,并返回结果。让我们采用一个简单的表达式 4 + 5 等于 9。此处,4 和 5 称为 operands ,“+”称为 operator

JavaScript 支持以下类型的运算符。

  1. Arithmetic Operators

  2. Comparison Operators

  3. Logical (or Relational) Operators

  4. Bitwise Operators

  5. Assignment Operators

  6. 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)

将左操作数乘方到右操作数