【问题标题】:Javascript What is the best way to assure the value "true" in a ternary expressionJavascript在三元表达式中确保值“true”的最佳方法是什么
【发布时间】:2016-01-15 16:37:49
【问题描述】:

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

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

错误是:

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

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

最好的表达方式是什么?

【问题讨论】:

    标签: javascript jslint


    【解决方案1】:

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

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

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

    var foo = bar === true;
    

    【讨论】:

    • 谢谢,我想多了。现在看来很明显
    【解决方案2】:

    如果bartruebar === true 将评估为真。你根本不需要三元。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      相关资源
      最近更新 更多