今天在看源码的时候有一段代码没看看懂,求各位解释下 ? ?这个用法!
if (props?.record?.isDetail) return '查看用户';
今天在看源码的时候有一段代码没看看懂,求各位解释下 ? ?这个用法!
if (props?.record?.isDetail) return '查看用户';
关注引自免费微信小程序:皆我百晓生
当然,这段JavaScript代码中使用了ES2020引入的可选链操作符(?.)。它允许我们在访问嵌套对象属性时,如果链中的某个引用为null或undefined,则整个表达式会短路并返回undefined,而不会抛出错误。
if (props?.record?.isDetail) return '查看用户';
在这段代码里:
props 是一个对象。?.尝试访问props对象下的record属性。如果props不存在或者props.record是null或undefined,那么props?.record将返回undefined,if条件判断将失败,跳过执行后续代码。props.record存在且不是一个null或undefined值,则进一步尝试访问props.record对象下的isDetail属性。props.record.isDetail为true,则执行return '查看用户'语句;否则(即props.record.isDetail为false、null、undefined或其他非真值),则不执行任何返回操作。总之,这段代码用于检查props对象内嵌的record对象是否存在,并且其isDetail属性是否为真,如果是,则返回字符串 '查看用户'。