这个JavaScript表达式是什么意思



我使用的是react导航,我不明白这个语法的含义。

React.useEffect(() => {
if (route.params?.post) { <<<<<WHAT IS THIS ?
// Post updated, do something with `route.params.post`
// For example, send the post to the server
}
}, [route.params?.post]);

它像obect一样工作吗是否存在Property.subProperty或其他内容?


我试着浏览了MDN文档,但找不到任何对这种语法的引用。我无法在我的节点REPL中的随机对象上使用类似的语法。

它被称为可选链接。MDN文档中提供:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

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

if(route.params.post)然后做点什么。它检查route.params是否有对象post

它被称为可选链接运算符。这是的简写

route.params && route.params.post

最新更新