三元运算符
( ?: )又叫条件运算符,接受三个运算数:条件 ? 条件为真时要执行的表达式 : 条件为假时要执行的表达式
<script>
var a = true
var b = false
// 单个条件
a ? console.log(1) : console.log(2); // 1
// 多个条件
b ? console.log(3) : a ? console.log(4) : console.log(5) // 4
</script>
可选链操作符
( ?. )允许读取位于连接对象链深处的属性的值。
( ?. ) 操作符的功能类似于( . )链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined,与函数调用一起使用时,如果给定的函数不存在,则返回 undefined
<script>
a?.b
// 等同于
a == null ? undefined : a.b
a?.[x]
// 等同于
a == null ? undefined : a[x]
a?.b()
// 等同于
a == null ? undefined : a.b()
a?.()
// 等同于
a == null ? undefined : a()
</script>
注:本人前端小白 ,如有不对的地方还请多多指教