前端开发常用判断符号

!就是将右侧值先转化为bool值后在进行取反,因此对于空对象或者空数组的取反取值为false,因为空对象或空数组转化为bool值为true。
!!则为在一个!将右侧值转化为bool值取反后再取反。
|该运算符取值逻辑为判断时将值转化为bool值判断左侧值为true or false,左侧值为true则直接取左侧值,为false再判断右侧为true则返回右侧值都为false则返回false。
&&该运算符取值逻辑为判断时转化为bool值判断左侧值为true or false,左侧值为false则直接返回false,左侧值为true再判断右侧,右侧为false则仍为false,为true则返回右侧值。
console.log(1 && 2) // 返回2
console.log(1 || 2) // 返回1
?符号用于判断左侧值是否为undefined或null, 若值为undefined或null则将右侧值赋值给左侧变量。
const name = obj.name?? 'mx'; // 若obj中存在name则name为obj.name的值否则则为mx。
?.符号用于判断某个对象的某个属性是否存在,若存在则返回该属性值,若不存在则返回undefined。防止引用对象为undefined或null时报错
let obj; // 此时obj未赋值,故为undefined
const name = obj?.name // name为undefined而不会报错。 
?.可以在对象不存在时返回undefined,而??可以在左侧值为undefined时返回右侧的值,因此两者可以结合使用如下
let obj;
const name = obj?.name ?? 'mx'; //由于obj为undefined,因此左侧值为undefined,故返回mx赋值给name
const name = obj?.name || 'mx'; //当然此处使用||也可达成同样效果
?:该运算符通过判断?前面的值为true or false 来决定返回:左右的值。
const name = true ? 'mx' : 'mxa' // 返回mx,若前面值为false则返回mxa
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值