我从 IntelliJ 收到一条关于某些 JavaScript 代码的有趣警告消息:
((a === 'foo') || (a === 'bar')) ? true : false' 可以简化为 '!!(((a === 'foo') || (a === 'bar')))
我明白为什么结构 condition 了? true : false
没有意义,但条件本身不应该代表一个 boolean 值吗?那么为什么要对整个表达式使用双重否定呢?
最佳答案
问问自己:您真的需要返回一个 boolean 值吗?
回答您的问题:IntelliJ 建议这样做的原因是因为它是这样配置的。
这只是让 IntelliJ 处理无意义条件的方法之一。
在the IntelliJ intentions documentation , 寻找:JavaScript --> 条件运算符 --> 删除无意义的条件。
双重 boolean 否定 (!!
) 是一种更短且可以说更简洁的将语句结果转换为 boolean 值的方法,而不是 truthy
或falsy
该语句通常会返回。
关于JavaScript boolean 表达式简化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21847100/