表达式和运算符 - JavaScript 编辑
该章节说明了JavaScript语言所有的运算符,表达式和关键字。
表达式和运算符分类
左侧工具栏是按字母表排序的列表。
主要表达式
JavaScript中基本关键字和常用表达式。
this
this
关键字指向函数的执行上下文。function
function
关键字定义了函数表达式。class
class
关键字定义了类表达式。function*
function*
关键字定义了一个 generator 函数表达式。yield
- 暂停和恢复 generator 函数。
yield*
- 委派给另外一个generator函数或可迭代的对象。
async function
async function
定义一个异步函数表达式。await
- 暂停或恢复执行异步函数,并等待promise的resolve/reject回调。
[]
- 数组初始化/字面量语法。
{}
- 对象初始化/字面量语法。
/ab+c/i
- 正则表达式字面量语法。
( )
- 分组操作符。
左表达式
左边的值是赋值的目标。
- 属性访问符
- 成员运算符提供了对对象的属性或方法的访问
(object.property
和object["property"]
). new
new
运算符创建了构造函数实例。new.target
- 在构造器中,
new.target
指向new
调用的构造器。 super
super
关键字调用父类的构造器....obj
- 展开运算符可以将一个可迭代的对象在函数调用的位置展开成为多个参数,或者在数组字面量中展开成多个数组元素。
自增和自减
前置/后置自增运算符和前置/后置自减运算符.
一元运算符
一元运算符只有一个操作数.
delete
delete
运算符用来删除对象的属性.void
void
运算符表示表达式放弃返回值.typeof
typeof
运算符用来判断给定对象的类型.+
- 一元加运算符将操作转换为Number类型.
-
- 一元减运算符将操作转换为Number类型并取反.
~
- 按位非运算符.
!
- 逻辑非运算符.
算术运算符
算术运算符以二个数值(字面量或变量)作为操作数,并返回单个数值。
关系运算符
比较运算符比较二个操作数并返回基于比较结果的Boolean
值。
箭头函数
的表示符。相等运算符
如果相等,操作符返回的是Boolean(布尔)类型的true,否则是false。
位移运算符
在二进制的基础上对数字进行移动操作
二进制位运算符
二进制运算符将它们的操作数作为32个二进制位(0或1)的集合,并返回标准的JavaScript数值。
二元逻辑运算符
逻辑运算符典型的用法是用于boolean(逻辑)值运算, 它们返回boolean值。
条件(三元)运算符
(condition ? ifTrue : ifFalse)
条件元素运算符把两个结果中其中一个符合运算逻辑的值返回。
赋值运算符
赋值元素符会将右边的操作数的值分配给左边的操作数,并将其值修改为右边操作数相等的值。
=
- 赋值运算符。
*=
- 赋值乘积。
/=
- 赋值商。
%=
- 赋值求余。
+=
- 赋值求和。
-=
- 赋值求差。
<<=
- 左位移。
>>=
- 右位移。
>>>=
- 无符号右位移。
&=
- 赋值与。
^=
- 赋值按位异或。
|=
- 赋值或。
[a, b] = [1, 2]
{a, b} = {a:1, b:2}
解构赋值允许你分配数组或者对象变量的属性通过使用规定的语法,其看起来和数组和对象字面量很相似。
逗号操作符
,
- 逗号操作符允许在一个判断状态中有多个表达式去进行运算并且最后返回最后一个表达式的值。
非标准化特性
- Expression closures 已废弃 Gecko 60
- 闭包表达式语法是一个缩写简单的函数。
- Legacy generator function 已废弃 Gecko 58
- function关键字能用来定义表达式内部未执行完的function的余下功能。 为了能执行function内部余下的代码, 这个function的内部至少包含一个
yield
表达式。 [for (x of y) x]
已废弃 Gecko 58- 数组解析
(for (x of y) y)
已废弃 Gecko 58- 生成器解析
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 1st Edition (ECMA-262) Expressions | Standard | Initial definition |
ECMAScript 5.1 (ECMA-262) Expressions | Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) ECMAScript Language: Expressions | Standard | New: Spread syntax, rest syntax, destructuring assignment, super keyword. |
ECMAScript (ECMA-262) ECMAScript Language: Expressions | Living Standard |
浏览器兼容
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.相关链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论