表达式和运算符
本章记录了所有 JavaScript 语言运算符、表达式和关键字。
¥This chapter documents all the JavaScript language operators, expressions and keywords.
按类别划分的表达式和运算符
主要表达方式
¥Primary expressions
JavaScript 中的基本关键字和一般表达式。这些表达式具有最高优先级(高于 operators)。
¥Basic keywords and general expressions in JavaScript. These expressions have the highest precedence (higher than operators).
this
-
this
关键字指的是执行上下文的特殊属性。 - 文字
-
基本
null
、布尔值、数字和字符串文字。 []
-
数组初始值设定项/文字语法。
{}
-
对象初始值设定项/文字语法。
function
-
function
关键字定义函数表达式。 class
-
class
关键字定义类表达式。 function*
-
function*
关键字定义生成器函数表达式。 async function
-
async function
定义了一个异步函数表达式。 async function*
-
async function*
关键字定义异步生成器函数表达式。 /ab+c/i
-
正则表达式文字语法。
`string`
-
模板文字语法。
( )
-
分组运算符。
左侧表达式
¥Left-hand-side expressions
左值是赋值的目标。
¥Left values are the destination of an assignment.
- Property accessors
-
成员运算符提供对对象的属性或方法的访问(
object.property
和object["property"]
)。 ?.
-
如果引用是 nullish(
null
或undefined
),可选链接运算符将返回undefined
而不会导致错误。 new
-
new
运算符创建构造函数的实例。 new.target
-
在构造函数中,
new.target
指的是被new
调用的构造函数。 import.meta
-
向 JavaScript 模块公开上下文特定元数据的对象。
super
-
super
关键字调用父构造函数或允许访问父对象的属性。 import()
-
import()
语法允许将模块异步动态加载到潜在的非模块环境中。
自增和自减
一元运算符
算术运算符
关系运算符
¥Relational operators
比较运算符比较其操作数,并根据比较是否为真返回布尔值。
¥A comparison operator compares its operands and returns a boolean value based on whether the comparison is true.
<
(小于)-
小于运算符。
>
(大于)-
大于运算符。
<=
-
小于或等于运算符。
>=
-
大于或等于运算符。
instanceof
-
instanceof
运算符确定一个对象是否是另一个对象的实例。 in
-
in
运算符确定对象是否具有给定属性。
注意:
=>
不是运算符,而是 箭头函数 的符号。¥Note:
=>
is not an operator, but the notation for Arrow functions.
相等运算符
按位移位运算符
二元按位运算符
二元逻辑运算符
¥Binary logical operators
逻辑运算符实现布尔(逻辑)值并具有 short-circuiting 行为。
¥Logical operators implement boolean (logical) values and have short-circuiting behavior.
条件(三元)运算符
赋值运算符
¥Assignment operators
赋值运算符根据其右操作数的值将值分配给其左操作数。
¥An assignment operator assigns a value to its left operand based on the value of its right operand.
收益算子
扩展语法
¥Spread syntax
...obj
-
扩展语法允许在需要零个或多个参数(对于函数调用)或元素(对于数组文字)的地方扩展可迭代对象(例如数组或字符串)。在对象字面量中,扩展语法枚举对象的属性并将键值对添加到正在创建的对象中。
逗号运算符
规范
浏览器兼容性
BCD tables only load in the browser
也可以看看
¥See also