ES6 运算符

2025年3月17日 | 阅读 10 分钟

运算符可以定义为一个符号,它告诉系统执行一个特定的操作。在 JavaScript 中,有一套丰富的运算符,通过使用特定的运算符,你可以执行任何特定的任务。

运算符用于表达式以求值不同的操作数。

表达式是一种返回值的语句。表达式包括:

  • 运算符: 负责对操作数执行一些操作
  • 操作数: 代表数据。

例如: 假设一个表达式如 x*y。在此表达式中,x y 操作数,星号 (*) 符号是乘法运算符。

运算符类型

JavaScript 中的运算符可以分为:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 按位运算符
  • 类型运算符
  • 杂项运算符

让我们来详细阐述这些运算符。

算术运算符

算术运算符是 JavaScript ES6 中可用的基本数学运算符。这些运算符负责在 JavaScript 中执行所有数学运算,如加法、减法等。

运算符函数
+ (加法)返回操作数值的总和
- (减法)返回操作数值的差值
* (乘法)返回操作数值的乘积。
/ (除法)用于执行除法,并返回商。
% (求模)它也执行除法并返回余数。
++ (自增)将变量的值增加一。
- (自减)将变量的值减少一。

例如

在此示例中,我们使用了上面列出的所有算术运算符。

输出

当你在终端执行上述代码时,你会得到以下输出:

Addition : 50
Subtraction: 10
Multiplication: 600
The division will give you the quotient: 1.5
Modulus will give you the Remainder: 10
Value of x after pre-increment: 31
Value of x after post-increment: 31
Value of y after pre-decrement: 19
Value of y after post-decrement: 19

关系运算符

关系运算符用于比较两个值,并根据表达式返回 true 或 false。这些运算符有时被称为比较运算符。

运算符函数
> (大于)如果左操作数大于右操作数,则返回 true,否则返回 false。
< (小于)如果左操作数小于右操作数,则返回 true,否则返回 false。
>= (大于或等于)如果左操作数大于或等于右操作数,则返回 true,否则返回 false。
<= (小于或等于)如果左操作数小于或等于右操作数,则返回 true,否则返回 false。
== (相等)如果两个操作数的值相同,则返回 true,否则返回 false。
!= (不等于)如果操作数的值不相同,则返回 true,否则返回 false。

例如

在此示例中,我们使用了上面列出的所有关系运算符。

输出

当你在终端执行此代码时,你会得到以下输出:

Value of x: 20
Value of y: 15
x is greater than y: true
x is smaller than y: false
x is greater than or equal to  y: true
x is smaller than or equal to y: false
x is equal to y: false
x not equal to  y: true

逻辑运算符

逻辑运算符通常用于组合两个或多个关系语句。它们也返回布尔值。

运算符描述
&& (逻辑与)如果与 && 组合的所有关系语句都为 true,则此运算符返回 true,否则返回 false。
|| (逻辑或)如果与 || 组合的至少一个关系语句为 true,则此运算符返回 true,否则返回 false。
! (逻辑非)返回语句结果的逆。

例如

在此示例中,我们使用了上面列出的所有逻辑运算符。

输出

Value of x = 30
Value of y = 80
(x < 40) && (y <= 90):  true
(x == 50) || (y > 80):  false
!((x > 20) && (y >= 80)):  false

赋值运算符

赋值运算符用于将值赋给变量。赋值运算符左侧的操作数是变量,右侧的操作数是值。

右侧的值必须与左侧变量的数据类型相同,否则编译器将引发错误。

运算符函数
= (简单赋值)它简单地将右操作数的值赋给左操作数。
+= (加法并赋值)此运算符将右操作数的值加到左操作数的值上,并将结果赋给左操作数。
-= (减法并赋值)此运算符将右操作数的值从左操作数的值中减去,并将结果赋给左操作数。
*= (乘法并赋值)此运算符将右操作数的值乘以左操作数的值,并将结果赋给左操作数。
/= (除法并赋值)此运算符将右操作数的值除以左操作数的值,并将结果赋给左操作数。

例如

在此示例中,我们使用了上面列出的所有逻辑运算符。

输出

After assignment the value of x is:  40 
x+=y: 80
x-=y: 40
x*=y: 1600
x/=y: 40
x%=y: 0

按位运算符

位运算符用于对二进制数字或位模式执行按位操作,这些操作涉及对单个位的操作。按位运算符对参数的二进制表示执行操作。

通常,位运算符的使用较少,与应用程序和高性能程序相关。

运算符描述
按位与 (&)它比较第一个操作数的每一位与第二个操作数的相应位。如果两个位都是 1,则结果位将设置为 1,否则设置为 0。
按位或 (|)它比较第一个操作数的每一位与第二个操作数的相应位。如果两个位都是 0,则结果位将设置为 0,否则设置为 1。
按位异或 (^)它接受两个操作数,并对两个操作数的每一位进行异或运算。如果两个位不同,则返回 1,否则返回 0。
按位非 (~)它翻转其操作数的位,即 0 变为 1,1 变为 0。
左移 (<<)它将左操作数的值向左移动由右操作数指定的位数。
符号扩展右移 (>>)它将左操作数的值向右移动由右操作数指定的位数。这是符号扩展,因为我们从左边添加的位取决于数字的符号(0 代表正数,1 代表负数)。
零填充右移它接受两个操作数。第一个操作数指定数字,第二个操作数确定要移动的位数。每一位都向右移动,溢出的位将被丢弃。因为从左边添加的是 0 位,所以它是一个零填充右移。

例如

在此示例中,我们使用了上面列出的所有逻辑运算符。

输出

Value of 70 in binary 0100 0110
Value of 80 in binary 0101 0000
Value of x & y = 64

Value of x | y = 86

Value of x ^ y = 22

Value of ~ x = -71

Value of x << 2 = 280

Value of x >> 2 = 17

注意:赋值运算符的逻辑也应用于按位运算符,因此它们变为 <<=, >>=, &=, |=, ^=。

杂项运算符

这些是根据不同情况执行不同操作的运算符。

运算符描述
+ (连接运算符)它应用于字符串,并将第二个字符串附加到第一个字符串。
- (负号运算符)它改变值的符号。
? (条件运算符)它用于表示条件表达式。它也称为三元运算符。

让我们来详细了解一下杂项运算符。

负号运算符 (-)

它用于改变值的符号。

例如

输出

Value of num1 = 80
Value of num2 = -80

连接运算符 (+)

它应用于字符串,并将第二个字符串附加到第一个字符串。您可以通过以下示例来理解它:

示例

输出

HelloWorld
Welcome Back

连接运算符不会在字符串之间添加空格。它将多个字符串连接在一个语句中。如果要显示字符串之间的空格,则必须手动定义。在上面的示例中,字符串 "HelloWorld" 不包含任何空格,但第二个字符串 "Welcome Back" 有空格,因为我们已手动添加它。

条件运算符 (?)

此运算符表示条件表达式。它也称为“三元运算符”。

语法

其中,

condition: 指条件表达式。

value1: 如果条件为 true,则返回此值。

value2: 如果条件为 false,则返回此值。

示例

输出

Yes 30 is greater than 20

类型运算符

它是一个一元运算符,返回操作数的数据类型。

语法

你可以在下表中看到 typeof JavaScript 运算符返回的数据类型和值。

类型typeof 返回的字符串
String"string"
Boolean"boolean"
数字"number"
Object"object"

示例

输出

Variable a is number
Variable b is boolean
Variable c is a string
Variable d is a string
Variable e is undefined

在上面的示例中,变量 e 未定义(或未初始化);因此,typeof 运算符返回其类型 undefined。

如果将 布尔值 放在引号内,它们将被视为 字符串,正如你在上面的示例中看到的 变量 'd' 一样。


下一主题ES6 循环