javascript中点前的问号/react

IT技术 reactjs react-native
2021-04-01 08:51:17

我知道React 中的三元运算符什么

当我开发 React Native 应用程序时,我遇到了这种被我的 eslint 作为意外标记覆盖的语法

ESLint: Parsing error: Unexpected token .

它是这样的:

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

这意味着什么?最终使用空合并运算符,但是我无法理解问号在点之前的作用。

我知道这是一种正确的语法,因为它是expo的模板,并且它们在 react-native 开发社区中非常受欢迎。

谁能帮我解释一下?

1个回答

这是可选链接:MDN

可选的链接运算符 ?。允许读取位于连接对象链深处的属性值,而无需明确验证链中的每个引用是否有效。这 ?。运算符的功能类似于 。链接运算符,除了如果引用为空(空或未定义)时不会导致错误,表达式会短路返回值未定义。当与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

当存在引用可能丢失的可能性时,这会导致在访问链接属性时更短和更简单的表达式。当对需要哪些属性没有已知的保证时,它在探索对象的内容时也很有帮助。