预期的 jslint!而不是看到了?

jslint expected !! and instead saw?

现在在任何人链接这篇文章之前:

我想解释一下,我想我明白为什么 jslint 会给我这个错误,但是我不确定我将如何修改下面的代码行以利用 !!运算符。

active = $item.find('isActive').text() === 'true' ? true : false,

有人介意在这方面启发我吗?

我首先尝试这样做,但即使在我的新手眼中,我也能看出这基本上是胡说八道:

active = $item.find('isActive').text() === !! 'true' true : false,

我想写得干净 javascript 所以我宁愿得到一个关于为什么使用 !!代替 ?是很好的做法。遗憾的是,查看 JSLint 错误站点并没有对此有任何了解。

提前致谢

I am unsure as to how I would rework the line of code below to utilise the !! operator.

在这种情况下你不会,!!? : 在这里都不合适。 === 计算为布尔值,因此很简单:

active = $item.find('isActive').text() === 'true'

所有等式运算符(===!====!=)和关系运算符(<<= , >, >=) 产生真布尔值。

如果 你想根据某些东西是否 truthyactive 设置为布尔值(强制为 true) 或 falsy (强制转换为 falsethen !! 是合适的。但不是当你已经有一个布尔值时。

例如,假设您想根据 str 是否为假来设置 blank。那样的话,

blank = !!str

会很合理。