jslint预计!!而是看到了?

时间:2016-06-30 10:47:33

标签: javascript 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错误网站并没有对此感到遗憾。

提前致谢

1 个答案:

答案 0 :(得分:3)

  

我不确定如何重写下面的代码行来使用!!操作

在这种情况下,!!? :都不合适。 ===计算为布尔值,所以简单:

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

所有相等运算符(===!====!=)和关系运算符(<<=,{ {1}},>)会产生真正的布尔值。

如果您希望根据某些内容 truthy (强制为>=)或active设置为布尔值falsy (强迫true然后 false是合适的。但是当你已经有一个布尔值时就不行了。

例如,假设您要根据!!是否为假来设置blank。在那种情况下,

str

是合理的。