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
最好的表达方式是什么?
如果 bar
是 true
,bar === true
将计算为真。你根本不需要三元组。
jslint 建议如下,因为 x?true:false
等同于 !!x
:
var foo = !!(bar === true);
但是您可以进一步简化它,因为 ===
总是 returns 一个布尔值:
var foo = bar === true;
我使用 jslint 检查我的 javascript,但我遇到了一个我找不到的 JSLint 错误。
表达式为:
var foo = (bar === true ? true : false);
错误是:
Expected '!!' and instead saw '?'.
表达式的目的是我希望 var 的值为布尔值 true 而不是 1 或 "not null" 或任何其他 "truthy" 值。只有值 true 会导致赋值 true
最好的表达方式是什么?
如果 bar
是 true
,bar === true
将计算为真。你根本不需要三元组。
jslint 建议如下,因为 x?true:false
等同于 !!x
:
var foo = !!(bar === true);
但是您可以进一步简化它,因为 ===
总是 returns 一个布尔值:
var foo = bar === true;