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

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

本文关键字:确保 true 方法 最佳 表达式 什么 三元 Javascript      更新时间:2023-09-26

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

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

错误是:

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

表达式的目的是我希望 var 的值是布尔值 true,而不是 1 或"非空"或任何其他"真"值。 只有值 true 将导致赋值 true

表达

这一点的最佳方式是什么?

jslint 提出了以下建议,因为x?true:false

等同于!!x
var foo = !!(bar === true);

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

var foo = bar === true;

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