哪里可以在JavaScript中使用空值运算符?

问题描述

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...

像这种情况,我想过滤“ null”和“ undefined”

但是它可以发挥所有真实的价值。

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

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

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

什么时候通常使用空值运算符?

谢谢

解决方法

如果您确定

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中进行测试。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...