如何使用 !不混淆?

How to use ! non-confusingly?

我的 JavaScript 代码包含一个 if 语句,其中包含以下(恕我直言,非常简单)条件:

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

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

JSHint: Confusing use of '!'. (W018)

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


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

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