【问题标题】:Idiomatic way to test for non-nullishness测试非无效性的惯用方法
【发布时间】:2021-08-06 09:31:01
【问题描述】:

JavaScript 现在提供 ???. 来执行诸如查找第一个非空表达式或取消引用非空对象等操作。

[添加:“nullish”表示“nullundefined”,类似于无效的合并运算符]。

有没有一种很好的惯用方法来简单地测试非无效性?例如,如果我的值不为空,我只想调用 onChange() 处理程序。那就是:

someVal && onChange(someVal)

显然这是不正确的,因为它会因为虚假但非空值(尤其是 0'')而失败。

【问题讨论】:

  • someVal != null 有什么问题?
  • @FelixKling 什么都没有!这是我一直在寻找的正确答案。

标签: javascript ecmascript-6 null idioms nullish-coalescing


【解决方案1】:

惯用的方式是使用if 语句与null 进行比较:

if (someVal != null) onChange(someVal)
if (someVal != null) {
    onChange(someVal)
}

这里没有运算符。有些人have expressed as desireextension to the pipeline operator proposal 可以让你写someVal ?> onChange; 之类的东西,但我不知道这个想法的任何实现。

【讨论】:

  • 啊,谢谢,这就是我想要的 - 强制比较。
猜你喜欢
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 2011-12-15
  • 2016-08-14
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多