在过去的 JavaScript 版本中,我们使用 ||
运算符来处理我们的变量,这样我们就可以检查变量是否存在并进行一些操作:
let value = something || 'default';
然而,使用 ||
运算符时我们可能会遇到一些问题。例如,如果 something
的值为 0
或 ""
,我们就会得到默认值 'default'
,这可能不是我们想要的结果。ES11 中引入了 nullish 运算符来解决这个问题。
什么是 nullish 运算符?
nullish 运算符是 ??
,它只会在变量的值为 null
或 undefined
时返回默认值。如果变量的值为 0
或 ""
,则不会返回默认值。
例如:
let value = something ?? 'default';
在这个例子中,如果 something
的值是 null
或 undefined
,value
将会赋值为 'default'
。如果 something
的值是 0
或 ""
,value
将会赋值为 0
或 ""
。
为什么我们需要 nullish 运算符?
在过去,我们通常会使用类似以下代码来确定变量是否有值:
let value = something !== undefined && something !== null ? something : 'default';
使用 nullish 运算符,我们可以更清晰地表达我们的意图,并使代码更简洁。
另一个使用 nullish 运算符的好处是避免意外出现错误。例如,如果我们写了以下代码:
let something = 0; let value = something || 'default';
这时 value
的值将会是 'default'
。如果我们不希望 0
被视为没有值,我们必须编写更复杂的代码来覆盖这种情况。使用 nullish 运算符,我们可以非常简单地解决这个问题:
let something = 0; let value = something ?? 'default';
实际应用
nullish 运算符还有许多其他实际应用。例如,我们可以使用它来检查配置文件中是否设置了某个选项:
const options = { size: 0, color: '', title: 'Default title' }; const size = options.size ?? 100; // size 的值为 0,还是设置为默认值 100? const color = options.color ?? 'blue'; // color 的值为 '',还是设置为默认值 'blue'?
在上面的例子中,我们可以清楚地看到哪些选项被设置了,哪些选项使用了默认值。
结论
nullish 运算符是 ES11 中的一个新特性,可以帮助我们避免变量为 0
或 ""
时混淆的情况。它提供了一种更简单、更清晰的方式来处理变量的默认值。在编写代码时,我们应该尽可能使用新的特性,以使代码更易读、更易于维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f131d86fbf960197373228