【问题标题】:How to use ! non-confusingly?如何使用 !不混淆?
【发布时间】:2019-04-04 10:35:28
【问题描述】:

我的 JavaScript 代码具有 if 语句,其条件如下(恕我直言,非常简单):

if (a !== !!b) {
}

现在,JSHint 抱怨如下,同时在b 前面标出第一个感叹号:

JSHint:“!”的使用令人困惑。 (W018)

如何在不改变其语义且不将其拆分为多个指令的情况下将该行更改为不混淆(由 JSHint 定义)?


需要明确:a 是布尔值,而 b 可能是也可能不是布尔值。

【问题讨论】:

  • a === !b 是正确的,如果 a 是一个布尔值。
  • 那么 linter 是这里唯一的困惑...
  • 如果您想摆脱 lint 错误,请进行显式转换:Boolean(b)
  • 请在问题中添加类型和值。
  • @EsdrasXavier 是的,这根本不会令人困惑:P

标签: javascript jshint


【解决方案1】:

会不会是无处不在的 JS 习语,!! 用于布尔转换,让 JSHint 感到困惑?如果是这样:1)也许可以在配置中将其关闭,2)您可以尝试更详细的if (a !== Boolean(b))

【讨论】:

  • 使用此处建议的详细选项,谢谢。
猜你喜欢
  • 2021-01-22
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多