ES6 运算符扩展

指数运算

指数运算符(**)赋值运算符(**=

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 判断运算符

通过??运算符判断某个属性的值是nullundefined

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 入门


点赞 评论 收藏 ~~ 今天的学习记录暂时到这... ~~ 点赞 评论 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shaoin_2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值