所以让我们在标记中有简单的条件:
someItem?.someField==somevalue
这里发生了什么?是同等的
someItem!=null && someItem!=nudefined && someItem==somevalue
如果false
未定义,基本上整个条件短路到someItem
?是特定于角度的语法还是javascript功能?
答案 0 :(得分:0)
安全导航操作符?.
(也称为Elvis Operator
)是一个角度2模板表达式操作符。
安全导航运算符可以避免属性路径中的空值和未定义值的异常。
从object访问属性时,如果object为null或未定义,它可能会抛出异常。
为了更安全,我们可以使用安全导航操作符从对象访问属性,因此它不会为对象为null或未定义的场景抛出异常。
它也可用于复杂物体 - 例如{{foo?.bar?.bas}}
。
但是,对于数组,应使用正常的空检查策略,例如{{records && records[0]}}
。
JavaScript代码无法读取此运算符
let x = {
y: 12
};
try {
if (x ? .y > 10) {
console.log('it works!');
}
} catch (ex) {
console.log('exception');
}

参考文献 -