我使用jslint来检查我的javascript,我得到了一个我无法找到的JSLint错误.
表达式是:
var foo = (bar === true ? true : false);
Run Code Online (Sandbox Code Playgroud)
错误是:
Expected '!!' and instead saw '?'.
Run Code Online (Sandbox Code Playgroud)
表达式的目的是我希望var的值为布尔值true而不是1或"not null"或任何其他"truthy"值.只有值true才会导致赋值为true
表达这一点的最佳方式是什么?
jslint建议如下,因为x?true:false它等价于!!x:
var foo = !!(bar === true);
Run Code Online (Sandbox Code Playgroud)
但是你可以更简化它,因为===总是返回一个布尔值:
var foo = bar === true;
Run Code Online (Sandbox Code Playgroud)