Javascript 确保三元表达式中值 "true" 的最佳方法是什么

Javascript What is the best way to assure the value "true" in a ternary expression

我使用 jslint 检查我的 javascript,但我遇到了一个我找不到的 JSLint 错误。
表达式为:

var foo = (bar === true ? true : false);

错误是:

Expected '!!' and instead saw '?'.

表达式的目的是我希望 var 的值为布尔值 true 而不是 1 或 "not null" 或任何其他 "truthy" 值。只有值 true 会导致赋值 true

最好的表达方式是什么?

如果 bartruebar === true 将计算为真。你根本不需要三元组。

jslint 建议如下,因为 x?true:false 等同于 !!x:

var foo = !!(bar === true);

但是您可以进一步简化它,因为 === 总是 returns 一个布尔值:

var foo = bar === true;