代码之家  ›  专栏  ›  技术社区  ›  Tim.Willis

缩短JavaScript三元[duplicate]

  •  0
  • Tim.Willis  · 技术社区  · 6 年前

    我一直使用这样的三元表达式,但我不喜欢其中的null。有更简洁的方法吗?

    var_1 === 'yes' ? var_2=true : null;
    

    这是我正在做的事情的简化版本。我只想检查一些东西是真是假,然后做一些别的什么也不做(所以我把null放进去)。有更好的方法吗?

    5 回复  |  直到 6 年前
        1
  •  1
  •   Ankit Agarwal    6 年前

    最简单的方法就是 var_2 = var_1 === 'yes'; 因为它适用于所有类型 yes , undefined null , '' 0 .

    //when var_1 is 'yes'
    var var_1 = 'yes';
    var var_2 = var_1 === 'yes';
    console.log(var_2);
    
    //when undefined
    var_1 = undefined;
    var_2 = var_1 === 'yes';
    console.log(var_2);
    
    //when null
    var_1 = null;
    var_2 = var_1 === 'yes';
    console.log(var_2);
    
    //when blank
    var_1 = '';
    var_2 = var_1 === 'yes';
    console.log(var_2);
    
    //when 0
    var_1 = 0;
    var_2 = var_1 === 'yes';
    console.log(var_2);
        2
  •  0
  •   TLP    6 年前

    变量2可以是 false ? 如果是:

    var_2 = var_1 === "yes";
    
        3
  •  0
  •   nbwoodward    6 年前

    我想你的意思是:

    var_2 = var_1 === 'yes' ? true : null
    

    var_2 = var_1 === 'yes' && true
    

    将设置 var_2 = true var_1 = 'yes' 否则 var_2 = false

        4
  •  0
  •   ulou Matt Wonlaw    6 年前

    var1 === 'yes' && var_2 = true

    && true 之后的争论 && 也被调用并执行,否则只有前面的参数被调用和执行。

    这是不干净的方式,但我有时使用它。

        5
  •  0
  •   Nina Scholz    6 年前

    最正确的方法是检查病情并接受治疗 true 结果或如果 false

    .

    var2 = var1 === 'yes' || var2;