js中的??使用

本文介绍JavaScript中的空值运算符(??)和可选链操作符(?.)的用法及区别。空值运算符会在左侧值为null或undefined时采用右侧值;与三元表达式相比,它将0和false视为有效值。可选链操作符避免了深层对象属性访问时的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、?? 表示:只有左侧的值为null或undefined的时候才使用右侧的值
2、??和三元表达式的区别: ?? 会取 0 或 false 为有效值, 但是三元表达式不会

例子:

let a=0 
let num=a?a:1 //1
let num2=a??2 //0

ps:
?. 表示:可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每 个引用是否有效。操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值

const obj = {
      name: 'ceshi',
      detail: {
        cat: 'huahua'
      }
    }
    const name = obj.dog ?. name;
    console.log(name) // undefined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值