了解新的 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.q
而 params
为 null 或未定义,则会抛出错误。可选链接运算符允许您做的是安全地尝试访问 q
属性 而不会抛出错误。在这种情况下,如果 params
为空或未定义,params?.q
将计算为 undefined
.
本质上这等同于检查 if(!(params && params.q))
.
您可以在 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
阅读有关可选链接运算符的更多信息
我不知道 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.q
而 params
为 null 或未定义,则会抛出错误。可选链接运算符允许您做的是安全地尝试访问 q
属性 而不会抛出错误。在这种情况下,如果 params
为空或未定义,params?.q
将计算为 undefined
.
本质上这等同于检查 if(!(params && params.q))
.
您可以在 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining
阅读有关可选链接运算符的更多信息