现在在任何人链接这篇文章之前: JSLint : Expected '!!' and instead saw '?'
我想解释一下,我想我明白为什么jslint会给我这个错误,但我不确定如何重写下面的代码行来利用!!操作
active = $item.find('isActive').text() === 'true' ? true : false,
有人会介意对此有所启发吗?
我试过这样做,但即使是我的新手眼睛,我也能看到这基本上是胡说八道:
active = $item.find('isActive').text() === !! 'true' true : false,
我想写干净的javascript,所以我宁愿得到一个正确的解释,为什么使用!!代替 ?是好习惯。查看JSLint错误网站并没有对此感到遗憾。
提前致谢
答案 0 :(得分:3)
我不确定如何重写下面的代码行来使用!!操作
在这种情况下,!!
和? :
都不合适。 ===
计算为布尔值,所以简单:
active = $item.find('isActive').text() === 'true'
所有相等运算符(===
,!==
,==
,!=
)和关系运算符(<
,<=
,{ {1}},>
)会产生真正的布尔值。
如果您希望根据某些内容 truthy (强制为>=
)或将active
设置为布尔值falsy (强迫true
)然后 false
是合适的。但是当你已经有一个布尔值时就不行了。
例如,假设您要根据!!
是否为假来设置blank
。在那种情况下,
str
是合理的。