ECMAScript 操作符
在 ECMAScript 中,操作符是用于对数据执行各种操作,操作符可以是符号,也可以是关键字。
操作符有优先级之分,按优先级由高到低排序
- 括号
(x + y) * z // 括号
- 对象操作
person.name
person["name"]
person?.name // 对象属性访问
Person() // 函数调用
new Person('Alice') // 带参数的new操作
- new 操作
new Person() // 不带参数的new操作
- 后缀操作
x ++ // 后缀递增
x -- // 后缀递减
- 前缀操作、NOT操作符、一元操作符
++ x // 前缀递增
-- x // 前缀递减
! x // 逻辑非
~ x // 按位非
+ x // 一元加
- x // 一元减
typeof x // 数据类型
void x // 返回undefined
delete person.name // 对象属性删除
- 指数操作
x ** y // 指数运算
- 乘除操作
x * y // 乘法运算
x / y // 除法运算
x % y // 除法余数运算
- 加减操作
x + y // 加法运算,字符串拼接
x - y // 减法运算
- 移位操作
x << 2 // 按位左移
x >> 2 // 按位右移(带符号)
x >>> 2 // 按位右移(无符号)
- 关系操作、比较操作
"PI" in Math // in操作符
x instanceof Array // instanceof操作符
x < y // 小于
x <= y // 小于等于
x > y // 大于
x >= y // 大于等于
- 等于操作
x == y // 等于
x === y // 严格相等
x != y // 不相等
x !== y // 严格不相等
- 按位操作:优先级:
&
>^
>|
x & y // 按位与
x ^ y // 按位异或
x | y // 按位或
- 逻辑操作:优先级:
&&
>||
x && y // 逻辑与
x || y // 逻辑或
- 空值合并操作
x ?? y // 空值合并
- 条件运算符、yield运算符、展开运算符
x > 0 ? 'yes' : 'no' // 条件运算符
yield x // 暂停、恢复
yield* x // 委托
...x // 展开运算符
- 逗号
x , y // 逗号