指数运算
指数运算符(**
)赋值运算符(**=
)
3 ** 2 // 9
3 ** 3 // 27
3 ** 2 ** 3 === 3 ** (2 ** 3) // 6561
let x = 3;
x **= 3 // 27
链判断运算符
“链判断运算符”(optional chaining operator)?.
读取对象内部的某个属性,往往需要判断一下,属性的上层对象是否存在。
const list = res?.data?.obj;
list.func?.() // list对象中如果有 func方法,则立即执行。
a?.b
// 等同于
a == null ? undefined : a.b
a?.[x]
// 等同于
a == null ? undefined : a[x]
a?.b()
// 等同于
a == null ? undefined : a.b()
a?.()
// 等同于
a == null ? undefined : a()
Null 判断运算符
通过??
运算符判断某个属性的值是null
或undefined
let name == res.name ?? 'shaoin';
// 相当于
let name ;
if(res.name !== null && res.name !== undefined){
name = res.name
}else{
name = 'shaoin'
}
逻辑赋值运算符
将逻辑运算符与赋值运算符进行结合。
||=
、&&=
、??=
相当于先进行逻辑运算,然后根据运算结果,再视情况进行赋值运算。
// 或赋值运算符
x ||= y
// 等同于
x || (x = y)
// 与赋值运算符
x &&= y
// 等同于
x && (x = y)
// Null 赋值运算符
x ??= y
// 等同于
x ?? (x = y)
参考文献
阮一峰老师的 ECMAScript 6 入门
点赞 评论 收藏 ~~ 今天的学习记录暂时到这... ~~ 点赞 评论 收藏