??
)用来判断左侧内容是否为null
或undefined
。如果为null
或undefined
则返回左侧内容,否者返回右侧内容。
||
)的区别逻辑或运算符是一个布尔逻辑运算符,会把左侧容转换成布尔值,任何假值(0
,''
,NaN
,null
,undefined
)都不会被返回。
如果想定义这些假值为初始值的话,应该使用空值合并运算符(??
)
?.
)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。在引用的值为空(null
,undefined
不报错)或者引用函数不存在的时候返回undefined
。
当尝试访问可能不存在的对象属性时,可选链运算符将会使表达式更短、更简明。