# 表达式和操作符
# 1. 基础表达式
下面的表达式是 JavaScript 语言里面最基础的关键字和一般表达式
- this:是指向当前执行环境上下文的关键字
- function:声明一个方法
- function*:声明一个 generator 方法
- class:声明一个 class
- yield:暂停或者恢复一个 generator 方法
- yield*:委派给另外一个generator函数或可迭代的对象
- async function:定义一个异步函数表达式
- await:暂停或恢复执行异步函数,等待一个 Promise 的 resolution 或者是 rejection
- []:数组初始化/字面量语法
- {}:对象初始化/字面量语法
- ():分组语法
- /ab+ci/:正则表达式的字面量语法
# 2. 左边表达式
左边的值是赋值的目标
- 属性访问符:访问对象的属性和方法,比如
Object.property
、Object['property']
- new:实例化构造函数
- new.target:在构造函数里面,
new.target
指向new
调用的构造函数 - super:
super
可以调用父构造函数 - ...obj:可以讲一个可迭代的对象延展成一个一个的成员参数
# 3. 自增/自减
# 4. 一元运算符
一元运算符仅仅操作一个对象
- delete:可以从对象中删除一个属性
- void:表示表达式放弃返回值
- typeof:返回给定对象的类型
- +:一元加法操作符将给定对象转换为 Number 类型
- -:一元加法操作符将给定对象转换为 Number 类型,并取反
- ~:按位非运算符
- !:逻辑非运算符
# 5. 算术运算符
# 6. 关系运算符
通过一个比较运算符进行比较,根据比较结果返回一个布尔值
# 7. 相等运算符
返回比较对象是否相等
# 8. 位移运算符
# 9. 二进制运算符
# 10. 二元逻辑运算符
# 11. 三元运算符
- condition ? true : false:三元运算符
# 12. 赋值运算符
赋值运算符将运算符右边的值赋值给左边
- =:赋值运算符
- +=:赋值求和
- -=:赋值求差
- *=:赋值求积
- /=:赋值求商
- %=:赋值求余
- <<=:赋值左位移
- >>=:赋值右位移
- >>>=:赋值无符号右位移
- &=:赋值与
- |=:赋值或
- ^=:赋值异或
- [a, b] = [1, 2]:解构赋值
- {a, b} = {a: 1, b: 2}:解构赋值
# 13. 逗号操作符
- ,:结合多个操作,从左到右进行,返回最后一个操作的值