测试非无效性的惯用方法
Idiomatic way to test for non-nullishness
JavaScript 现在提供 ??
和 ?.
来执行查找第一个非空表达式或取消引用非空对象等操作。
[添加:“nullish”表示“null
或 undefined
”,就像无效合并运算符]。
是否有一种很好的惯用方法来简单地测试非无效性?例如,如果我只想在我的值为非空值时调用 onChange()
处理程序。即:
someVal && onChange(someVal)
显然这是不正确的,因为它会因虚假但非空值而失败(特别是 0
和 ''
)。
惯用的方式是 if
语句与 null
:
进行比较
if (someVal != null) onChange(someVal)
if (someVal != null) {
onChange(someVal)
}
这个没有运算符。有些人 have expressed as desire for an extension to the pipeline operator proposal 会让你写一些类似 someVal ?> onChange;
的东西,但我不知道这个想法有任何实现。
JavaScript 现在提供 ??
和 ?.
来执行查找第一个非空表达式或取消引用非空对象等操作。
[添加:“nullish”表示“null
或 undefined
”,就像无效合并运算符]。
是否有一种很好的惯用方法来简单地测试非无效性?例如,如果我只想在我的值为非空值时调用 onChange()
处理程序。即:
someVal && onChange(someVal)
显然这是不正确的,因为它会因虚假但非空值而失败(特别是 0
和 ''
)。
惯用的方式是 if
语句与 null
:
if (someVal != null) onChange(someVal)
if (someVal != null) {
onChange(someVal)
}
这个没有运算符。有些人 have expressed as desire for an extension to the pipeline operator proposal 会让你写一些类似 someVal ?> onChange;
的东西,但我不知道这个想法有任何实现。