-1
function test(val) {
    const hasError = val ?? true;
    if (hasError) {
        //error handling...
    } else {
        //do something...
    }
}
test(null) //error handling...
test(undefined) //error handling...
test('text') //error handling...
test(true) //error handling...

像这种情况我想过滤“空”和“未定义”

但它的工作每一个真实的价值。

所以我只有一个选择...

const hasError = (val === undefined || val === null);

在这种情况下,有什么方法可以使用 nullish 运算符吗?

什么时候通常使用无效运算符?

谢谢你

4

1 回答 1

0

如果你确定

const hasError = (val === undefined || val === null);

捕获你想要的逻辑,那么问题是

const hasError = val ?? true;

如果您随后要在表达式中使用该标志,则为您提供相反的结果。if你真的很想跟着

if (hasError !== true)

这真的很令人困惑(对我来说)。相反,您可以考虑??给您相反的运算符:

const noError = val ?? true;
if (!noError) 

这更有意义。我个人会使用

const hasError = val == null;

或者直接执行测试if

于 2020-08-30T12:20:47.143 回答