【问题标题】:Set var to true if another var is falsy or true but not boolean false如果另一个 var 为假或真但不是布尔假,则将 var 设置为真
【发布时间】:2015-10-23 15:58:09
【问题描述】:

如果不是布尔值false,我想将variable 设置为true

例子:

undefined, null, 0, "", NaN, true, etc = true, otherwise false

我有一个接受一个参数的函数,除非它设置为布尔值false,否则我想将其设为true

我觉得这应该是一个简单的单行但我似乎无法弄清楚。

我一定是把事情弄得太复杂了。

【问题讨论】:

  • 抱歉编辑,当你清楚地说“var is falsy or true”时,我受到了“var is falsy[.]”的攻击

标签: javascript variables boolean


【解决方案1】:

您可以使用!== 来检查值和类型

function myMethod(parameter){
    parameter = parameter !== false;
}

【讨论】:

  • 如果参数值为undefined,你能告诉我这会返回什么parameter = parameter !== false;吗?而这个另一个返回parameter !== false ? true : false .. 即使运营商是!= 它是一样的
  • @JEES: undefinedfalse 是不同的类型,所以!== 将是true,因为它们并不严格相等。 (当然,您可以使用浏览器的 Web 控制台简单地检查这一点,方法是输入 undefined !== false 并查看它显示的内容。)
  • @T.J,如果我错了,请纠正我,但第一个会返回parameter?后面只要参数不是false就返回true。我错了吗?
  • @JEES: 第一个没有返回parameter 因为!==
  • @JEES,当您说parameter = parameter !== false; 时,此语句中没有返回。相反,您是在说 whatever is the result of parameter !== false 将结果存储在变量中 parameter
【解决方案2】:

只需使用!== 运算符

 var isGood = (x !== false);

【讨论】:

    【解决方案3】:

    你可以只检查参数为false如下:

    var myVar = (parameter !== false);
    

    【讨论】:

      猜你喜欢
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多