了解新的 Javascript 三元条件约定

Understanding New Javascript Ternary Condition Convention

我不知道 JS(!params?.q) 中的这个条件约定。我知道三元条件,但我不明白这一点。谁能提供这方面的见解,或者我应该学习什么来理解类似的约定?

JS 代码块

 if (!params?.q) {// I don't understand a '?' without a ternary //condition
      setSkipFirstRender(false);
      setSort({
        name: PersonEnum.keys.displayName,
        dir: PersonEnum.sortOrder.asc,
      });
}

?. 运算符是可选的链接运算符,有时也称为 Elvis 运算符。

尽管都使用 ? 字符,但可选的链接运算符和三元语句有两个不同的用途。

通常,如果您要访问 params.qparams 为 null 或未定义,则会抛出错误。可选链接运算符允许您做的是安全地尝试访问 q 属性 而不会抛出错误。在这种情况下,如果 params 为空或未定义,params?.q 将计算为 undefined.

本质上这等同于检查 if(!(params && params.q)).

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

阅读有关可选链接运算符的更多信息