JavaScript中点号之前的问号/反应

I know what ternary operator is in React.

当我开发React Native应用时,我遇到了这种形式的eslint所涵盖的语法作为意外令牌

ESLint: Parsing error: Unexpected token .

它是这样的:

const routeName = route.state?.routes[route.state.index]?.name ?? INITIAL_ROUTE_NAME;

What does that mean? It uses null coalescing operator in the end, however I can't understand what does the question mark do before a dot.

I know it is a correct syntax because it is a template from expo and they're very popular in react-native development community.

谁能帮我解释一下?

谢谢

评论
此1不2
此1不2

That's optional chaining: MDN

可选的链接运算符?。允许读取位于连接对象链深处的属性的值,而无需明确验证链中的每个引用是否有效。 ?。操作符的功能类似于。链接运算符,除了在引用为空(空或未定义)的情况下不会引起错误外,表达式会使用返回值未定义来短路。与函数调用一起使用时,如果给定的函数不存在,则返回undefined。      当存在可能会丢失引用的访问链接属性时,这会导致表达式更短,更简单。在无法确定需要哪些属性的情况下,探索对象的内容时也可能会有帮助。
点赞
评论