表达式和运算符

本章记录了所有 JavaScript 语言运算符、表达式和关键字。

按类别分类的表达式和运算符

有关字母顺序列表,请参见左侧的侧边栏。

基本表达式

JavaScript 中的基本关键字和通用表达式。这些表达式的优先级最高(高于运算符)。

this

this 关键字指的是执行上下文的特殊属性。

字面量

基本 null、布尔值、数字和字符串字面量。

[]

数组初始化器/字面量语法。

{}

对象初始化器/字面量语法。

function

function 关键字定义函数表达式。

class

class 关键字定义类表达式。

function*

function* 关键字定义生成器函数表达式。

异步函数

async function 定义异步函数表达式。

异步生成器函数

async function* 关键字定义异步生成器函数表达式。

/ab+c/i

正则表达式字面量语法。

`string`

模板字面量语法。

( )

分组运算符。

左值表达式

左值是赋值的目标。

属性访问器

成员运算符提供对对象的属性或方法的访问(object.propertyobject["property"])。

?.

如果引用为空值nullundefined),则可选链运算符返回 undefined 而不是引发错误。

new

new 运算符创建构造函数的实例。

new.target

在构造函数中,new.target 指的是由new调用的构造函数。

import.meta

一个向 JavaScript 模块公开上下文特定元数据的对象。

super

super 关键字调用父构造函数或允许访问父对象的属性。

import()

import() 语法允许异步和动态地将模块加载到可能不是模块的环境中。

增量和减量

后缀/前缀增量和后缀/前缀减量运算符。

A++

后缀增量运算符。

A--

后缀减量运算符。

++A

前缀增量运算符。

--A

前缀减量运算符。

一元运算符

一元运算是一种只有一个操作数的运算。

delete

delete 运算符从对象中删除属性。

void

void 运算符计算表达式的值并丢弃其返回值。

typeof

typeof 运算符确定给定对象的类型。

+

一元加号运算符将其操作数转换为 Number 类型。

-

一元否定运算符将其操作数转换为 Number 类型,然后将其取反。

~

按位非运算符。

!

逻辑非运算符。

await

暂停和恢复异步函数,并等待 Promise 的完成/拒绝。

算术运算符

算术运算符以数值(字面量或变量)作为其操作数,并返回单个数值。

**

指数运算符。

*

乘法运算符。

/

除法运算符。

%

取模运算符。

+ (加号)

加法运算符。

-

减法运算符。

关系运算符

比较运算符比较其操作数,并根据比较是否为真返回布尔值。

< (小于)

小于运算符。

> (大于)

大于运算符。

<=

小于或等于运算符。

>=

大于或等于运算符。

instanceof

instanceof 运算符确定一个对象是否是另一个对象的实例。

in

in 运算符确定一个对象是否具有给定的属性。

注意:=> 不是运算符,而是箭头函数的表示法。

相等运算符

计算相等运算符的结果始终为布尔类型,具体取决于比较是否为真。

==

相等运算符。

!=

不相等运算符。

===

严格相等运算符。

!==

严格不相等运算符。

按位移位运算符

对操作数的所有位进行移位操作。

<<

按位左移运算符。

>>

按位右移运算符。

>>>

按位无符号右移运算符。

二进制按位运算符

按位运算符将其操作数视为一组 32 位(零和一),并返回标准的 JavaScript 数值。

&

按位与。

|

按位或。

^

按位异或。

二进制逻辑运算符

逻辑运算符实现布尔(逻辑)值,并具有短路行为。

&&

逻辑与。

||

逻辑或。

??

空值合并运算符。

条件 (三元) 运算符

(condition ? ifTrue : ifFalse)

条件运算符根据条件的逻辑值返回两个值之一。

赋值运算符

赋值运算符根据其右操作数的值将其左操作数赋值。

=

赋值运算符。

*=

乘法赋值。

/=

除法赋值。

%=

取模赋值。

+=

加法赋值。

-=

减法赋值

<<=

左移赋值。

>>=

右移赋值。

>>>=

无符号右移赋值。

&=

按位与赋值。

^=

按位异或赋值。

|=

按位或赋值。

**=

指数赋值。

&&=

逻辑与赋值。

||=

逻辑或赋值。

??=

空值合并赋值。

[a, b] = arr, { a, b } = obj

解构赋值允许您使用类似于数组或对象字面量的语法将数组或对象的属性赋值给变量。

yield 运算符

yield

暂停和恢复生成器函数。

yield*

委托给另一个生成器函数或可迭代对象。

扩展语法

...obj

扩展语法允许在期望零个或多个参数(对于函数调用)或元素(对于数组字面量)的位置扩展可迭代对象(例如数组或字符串)。在对象字面量中,扩展语法枚举对象的属性并将键值对添加到正在创建的对象中。

逗号运算符

,

逗号运算符允许在单个语句中计算多个表达式,并返回最后一个表达式的结果。

规范

规范
ECMAScript 语言规范
# sec-addition-operator-plus
ECMAScript 语言规范
# sec-assignment-operators
ECMAScript 语言规范
# sec-async-function-definitions
ECMAScript 语言规范
# sec-async-generator-function-definitions
ECMAScript 语言规范
# prod-BitwiseANDExpression
ECMAScript 语言规范
# sec-bitwise-not-operator
ECMAScript 语言规范
# prod-BitwiseORExpression
ECMAScript 语言规范
# prod-BitwiseXORExpression
ECMAScript 语言规范
# sec-class-definitions
ECMAScript 语言规范
# sec-comma-operator
ECMAScript 语言规范
# sec-conditional-operator
ECMAScript 语言规范
# sec-postfix-decrement-operator
ECMAScript 语言规范
# sec-delete-operator
ECMAScript 语言规范
# sec-destructuring-assignment
ECMAScript 语言规范
# sec-destructuring-binding-patterns
ECMAScript 语言规范
# sec-multiplicative-operators
ECMAScript 语言规范
# sec-equality-operators
ECMAScript 语言规范
# sec-exp-operator
ECMAScript 语言规范
# sec-function-definitions
ECMAScript 语言规范
# sec-generator-function-definitions
ECMAScript 语言规范
# sec-relational-operators
ECMAScript 语言规范
# sec-grouping-operator
ECMAScript 语言规范
# sec-import-calls
ECMAScript 语言规范
# prod-ImportMeta
HTML 标准
# hostgetimportmetaproperties
ECMAScript 语言规范
# sec-postfix-increment-operator
ECMAScript 语言规范
# sec-left-shift-operator
ECMAScript 语言规范
# prod-LogicalANDExpression
ECMAScript 语言规范
# sec-logical-not-operator
ECMAScript 语言规范
# prod-LogicalORExpression
ECMAScript 语言规范
# sec-new-operator
ECMAScript 语言规范
# sec-built-in-function-objects
ECMAScript 语言规范
# sec-null-value
ECMAScript 语言规范
# prod-CoalesceExpression
ECMAScript 语言规范
# sec-object-initializer
ECMAScript 语言规范
# prod-OptionalExpression
ECMAScript 语言规范
# sec-property-accessors

ECMAScript 语言规范
# 有符号右移运算符
ECMAScript 语言规范
# 扩展运算符
ECMAScript 语言规范
# 参数列表
ECMAScript 语言规范
# 属性定义
ECMAScript 语言规范
# 减法运算符(减号)
ECMAScript 语言规范
# super 关键字
ECMAScript 语言规范
# this 关键字
ECMAScript 语言规范
# typeof 运算符
ECMAScript 语言规范
# 一元负号运算符
ECMAScript 语言规范
# 一元正号运算符
ECMAScript 语言规范
# 无符号右移运算符
ECMAScript 语言规范
# void 运算符
ECMAScript 语言规范
# Yield 表达式
ECMAScript 语言规范
# 生成器函数定义 - 运行时语义 - 评估

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅