问题描述
JavaScript 现在提供 ??
和 ?.
来执行诸如查找第一个非 null 表达式或取消引用对象(如果不为 null)之类的操作。
[添加:“nullish”的意思是“null
或 undefined
”,就像空合并运算符]。
是否有一种很好的惯用方法来简单地测试非零性?例如,如果我只想在我的值不为空时调用 onChange()
处理程序。即:
someVal && onChange(someVal)
显然这是不正确的,因为对于虚假但非空的值(特别是 0
和 ''
),它会失败。
解决方法
惯用的方式是将 if
语句与 null
进行比较:
if (someVal != null) onChange(someVal)
if (someVal != null) {
onChange(someVal)
}
没有这方面的运营商。有些人 have expressed as desire 表示 extension to the pipeline operator proposal 可以让您编写类似 someVal ?> onChange;
的内容,但我不知道该想法的任何实现。