【问题标题】:JavaScriptClass : Simple conditional (ternary) Operator returns wrong resultJavaScriptClass:简单的条件(三元)运算符返回错误的结果
【发布时间】:2020-06-18 09:20:34
【问题描述】:

我有以下代码,使用三元运算符来判断值是真还是假。

我的预期结果是 pp 为真,但我得到的结果是假的。

这怎么可能?这对我来说没有意义。

const test = (x) => {
    (x === 1) ? true : false;
}


let pp = test(1); // SHOULD BE TRUE


if (pp) {console.log('pp is true')}
else {console.log('pp is false')}; // PRINTS FALSE, BUT SHOULD BE TRUE

【问题讨论】:

  • 使用表达式而不是代码块:const test = (x) => (x === 1) ? true : false;
  • 或者更简单:const test = (x) => x === 1;
  • 是的,你是对的。抱歉,这是一个愚蠢的错误
  • 对于这个简单的真或假任务,您可以使用一些“快捷方式”,我会这样说return !!(x === 1)

标签: javascript if-statement conditional-operator


【解决方案1】:

您需要返回boolean:

const test = (x) => {
    return (x === 1) ? true : false;
}


let pp = test(1);


if (pp) {console.log('pp is true')}
else {console.log('pp is false')};

【讨论】:

    【解决方案2】:

    括号{}你需要在正文中添加“return”

    const test = (x) => {
     return (x === 1) ? true : false;
    }
    

    或不带括号

    const test = (x) =>  (x === 1) ? true : false;
    

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多