js中 ?? 和 ?. 的意思

1.空值合并操作符??

  只有当左侧为null或者undefined 时候,才会返回右侧的数,否则返回左侧操作数

 与(||)不同,或操作符会在左侧操作数为假值时返回右侧操作数,例如(‘’ 或者 0)

  

null ?? 'default string' ------default string

0 ?? 42 ------0

0 || 42 ------42

2. 可选链操作符(?.)

   允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?.操作符的功能类似于.链式操作符,不同之处在于,在引用(null || undefined)的情况下不会引起错误。

  

  const adventurer = {
           name:"Alice",

          cat:{

       name:'Dinah'

    }

    }

const  dogName = adventurer.dog?.name--------undefined 但是不会报错

 

 

语法:obj?.prop  obj?.[expr]  arr?.[index]   fun?.(args)

 

1.函数调用

  let result = someInterface.customMethod?.()  

  let result = someInterface?.customMethod?.()  

2.可选链与表达式

  let nesteProp = obj?.['prop' + 'Name']

3.可选链访问数组

  let arrayItem = arr?.[42]

 

 

参考:https://www.cnblogs.com/zhigu/p/13962661.html

 

  

 

posted @   fanly_hh  阅读(720)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示