ES6 - 运算符



一个表达式是一种特殊类型的语句,它会计算出一个值。每个表达式都由以下部分组成:

  • 操作数 − 代表数据。

  • 运算符 − 定义如何处理操作数以生成值。

考虑以下表达式:2 + 3。在这个表达式中,2 和 3 是操作数,符号 +(加号)是运算符。JavaScript 支持以下类型的运算符:

  • 算术运算符
  • 逻辑运算符
  • 关系运算符
  • 位运算符
  • 赋值运算符
  • 三元/条件运算符
  • 字符串运算符
  • 类型运算符
  • void 运算符

算术运算符

假设变量ab的值分别为 10 和 5。

显示示例

运算符 功能 示例
+ 加法

返回操作数的和。

a + b 为 15
- 减法

返回数值的差。

a - b 为 5
* 乘法

返回数值的积。

a * b 为 50
/ 除法

执行除法运算并返回商。

a / b 为 2
% 取模

执行除法并返回余数。

a % b 为 0
++ 递增

将变量的值递增 1。

a++ 为 11
-- 递减

将变量的值递减 1。

a-- 为 9

关系运算符

关系运算符测试或定义两种实体之间的关系。关系运算符返回布尔值,即 true/false。

假设 A 的值为 10,B 的值为 20。

显示示例

运算符 描述 示例
> 大于 (A > B) 为 False
< 小于 (A < B) 为 True
>= 大于或等于 (A >= B) 为 False
<= 小于或等于 (A <= B) 为 True
== 等于 (A == B) 为 False
!= 不等于 (A != B) 为 True

逻辑运算符

逻辑运算符用于组合两个或多个条件。逻辑运算符也返回布尔值。假设变量 A 的值为 10,B 的值为 20。

显示示例.

运算符 描述 示例
&&

只有当所有指定的表达式都返回 true 时,运算符才返回 true。

(A > 10 && B > 10) 为 False
||

如果至少一个指定的表达式返回 true,则运算符返回 true。

(A > 10 || B > 10) 为 True
!

运算符返回表达式的结果的逆值。例如:!(7 > 5) 返回 false。

!(A > 10) 为 True

位运算符

JavaScript 支持以下位运算符。下表总结了 JavaScript 的位运算符。

显示示例.

运算符 用法 描述
按位与 a & b 对于两个操作数的相应位都是 1 的每个位位置,返回 1
按位或 a | b 对于两个操作数的相应位中任一个或两个都是 1 的每个位位置,返回 1
按位异或 a^b 对于两个操作数的相应位中只有一个是 1 的每个位位置,返回 1
按位非 ~ a 反转其操作数的位
左移 a << b 将 a 的二进制表示向左移动 b (< 32) 位,从右边移入零
符号扩展右移 a >> b 将 a 的二进制表示向右移动 b (< 32) 位,丢弃移出的位
零填充右移 a >>> b 将 a 的二进制表示向右移动 b (< 32) 位,丢弃移出的位,并从左边移入零

赋值运算符

下表总结了赋值运算符。

显示示例.

序号 运算符和描述
1

= (简单赋值)

将右侧操作数的值赋给左侧操作数。

示例 − C = A + B 会将 A + B 的值赋给 C

2

+= (加法赋值)

它将右侧操作数添加到左侧操作数,并将结果赋给左侧操作数。

示例 − C += A 等效于 C = C + A

3

-= (减法赋值)

它从左侧操作数中减去右侧操作数,并将结果赋给左侧操作数。

示例 C -= A 等效于 C = C - A

4

*= (乘法赋值)

它将右侧操作数乘以左侧操作数,并将结果赋给左侧操作数。

示例 C *= A 等效于 C = C * A

5

/= (除法赋值)

它将左侧操作数除以右侧操作数,并将结果赋给左侧操作数。

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

其他运算符

以下是一些其他运算符。

负号运算符 (-)

更改值的符号。以下程序是相同的示例。

var x = 4 
var y = -x; 
console.log("value of x: ",x); //outputs 4 
console.log("value of y: ",y); //outputs -4

在成功执行上述程序后,将显示以下输出。

value of x: 4 
value of y: -4 

字符串运算符:连接运算符 (+)

当 + 运算符应用于字符串时,它会将第二个字符串附加到第一个字符串。以下程序有助于理解这个概念。

var msg = "hello"+"world" 
console.log(msg) 

在成功执行上述程序后,将显示以下输出。

helloworld

连接操作不会在字符串之间添加空格。多个字符串可以在单个语句中连接。

条件运算符 (?)

此运算符用于表示条件表达式。条件运算符有时也称为三元运算符。以下是语法。

Test ? expr1 : expr2

其中:

Test − 指条件表达式

expr1 − 如果条件为 true,则返回的值

expr2 − 如果条件为 false,则返回的值

示例

var num = -2 
var result = num > 0 ?"positive":"non-positive" 
console.log(result)

第 2 行检查变量 num 中的值是否大于零。如果 num 设置为大于零的值,则返回字符串“positive”,否则返回“non-positive”字符串。

在成功执行上述程序后,将显示以下输出。

non-positive 

typeof 运算符

它是一个一元运算符。此运算符返回操作数的数据类型。下表列出了 JavaScript 中 typeof 运算符返回的数据类型和值。

类型 typeof 返回的字符串
数字 "number"
字符串 "string"
布尔值 "boolean"
对象 "object"

以下示例代码显示数字作为输出。

var num = 12 
console.log(typeof num); //output: number

在成功执行上述代码后,将显示以下输出。

number

扩展运算符

ES6 提供了一个名为扩展运算符的新运算符。扩展运算符由三个点“...”表示。扩展运算符将数组转换为单个数组元素。

扩展运算符和函数

以下示例说明了在函数中使用扩展运算符。

<script>
   function addThreeNumbers(a,b,c){
      return a+b+c;
   }
   const arr = [10,20,30]
   console.log('sum is :',addThreeNumbers(...arr))
   console.log('sum is ',addThreeNumbers(...[1,2,3]))
</script>

上述代码的输出将如下所示:

sum is : 60
sum is 6

扩展运算符和数组复制和连接

扩展运算符可用于将一个数组复制到另一个数组。它还可用于连接两个或多个数组。这在以下示例中显示:

示例

<script>
   //copy array using spread operator
   let source_arr = [10,20,30]
   let dest_arr = [...source_arr]
   console.log(dest_arr)
	
   //concatenate two arrays
   let arr1 = [10,20,30]
   let arr2 =[40,50,60]
   let arr3 = [...arr1,...arr2]
   console.log(arr3)
</script>

上述代码的输出将如下所示:

[10, 20, 30]
[10, 20, 30, 40, 50, 60]

扩展运算符和对象复制和连接

扩展运算符可用于将一个对象复制到另一个对象。它还可用于连接两个或多个对象。这在以下示例中显示:

<script>
   //copy object
   let student1 ={firstName:'Mohtashim',company:'TutorialsPoint'}
   let student2 ={...student1}
   console.log(student2)
   //concatenate objects
   let student3 = {lastName:'Mohammad'}
   let student4 = {...student1,...student3}
   console.log(student4)
</script>

上述代码的输出将如下所示:

{firstName: "Mohtashim", company: "TutorialsPoint"}
{firstName: "Mohtashim", company: "TutorialsPoint", lastName: "Mohammad"}
广告