javasript运算符

** 幂指数运算

**运算符的特点是右结合,而不是普通的运算公式是左结合。多个幂运算符连用时,是最右边开始计算的。

Math.pow(2,3)  // 8
// better
2**3 //8
2**2**3 // 256 ===  2**(2**3)
// 可以使用圆括号运算符()来控制表达式的优先级
(2**2)**3  // 64

?:条件(三元)运算符

if(age >= 18){
	console.log('成年')
}else{
	console.log('未成年')
}
// better
age>18?console.log('成年'):console.log('未成年')

条件运算符可以用链接使用,它也满足右结合

const age = 35
age >= 70 ? console.log('从心所欲') 
	: age >= 60 ? console.log('耳顺')
	: age >= 50 ? console.log('知天命') 
	: age >= 40?console.log('不惑')
	:age >= 30?console.log('立')
	:console.log('啥也不是') //立

注意:condition如果不是一个boolean将会发生隐式转换,如果是一个真值Truthy,就会执行

let studyList = [{name:'vling',age:25},{name:'sara',age:24}]
let person = studyList.find(item=>item.age<18)  //undefined
person ? console.log('要开花'):console.log('要种瓜') //要种瓜

,逗号运算符

逗号运算符可以创建一个以上的复合表达式,整个复合表达式的值为最右侧的表达式的值

x => {
    x = x + 1
    return x
}
// better
x => (x++, x)
// or
x => ++x

??空值合并运算符

空值合并运算符??当且仅当左侧操作数为null或者undefined时才会返回右侧操作结果。
空值合并运算符和 运算符 || 功能相似,也可以用来设置备用值,但如果值为假值时有隐患

function getAge(age){
	age = age || '未知'
	console.log('vling的年龄是:'+ age)
}
getAge(0) // 'vling的年龄是:未知'

逻辑或运算符 || 会在左侧操作数是falsy 时返回右侧操作数。而0,‘’也属于falsy,使用空置合并运算符??解决了这个问题。如

function getAge(age){
	age = age ?? '未知'
	console.log('vling的年龄是:'+ age)
}
getAge(0) // 'vling的年龄是:0'

可以和可选链运算符?.一起用

let person
person?.age?? '未注册' // '未注册'

?.可选链运算符

当读取到null或undefined的属性时,js会抛出typeError:
在这里插入图片描述
新增可选链运算符,可以作用在上述情况,并短路返回undefined:
在这里插入图片描述

let studentList = [{name:'vling'}]
if(studentList[0].sleep){
	studentList[0].sleep()
}
// better
studentList[0].sleep?.() // undefined

//如果前面的对象也可能不存在
studentList[1].sleep?.() // undefined

//如果该属性虽然存在,但不是一个函数,就会报错
studentList[0]?.name()

//可用于方括号属性访问器和访问数组元素

let name = 'vling'
null?.[name] // undefined

let arr = []
arr?.[0] // undefined

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值