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

浙公网安备 33010602011771号