是否可以使用&&并在同一行上设置变量?

时间:2012-02-28 02:33:54

标签: javascript

我正在使用:

MyTestFunction() && ExecuteMe();

快速简便的条件执行。我想通过创建:

来在某些地方更多地提高代码可读性
  1. 单线卫士身份I.E:

    MyTestFunction() && return; 
    //prevent execution of function early, but this isn't possible
    
  2. 单行变量setter:

    MyTestFunction() && myVar = 5;
    

    (我知道我可以做myVar = MyTestFunction() || 5;但那不是我想要的)

  3. 任何人都能看到一个很好的方式吗?

4 个答案:

答案 0 :(得分:3)

这对我有用:

var num;
TestFunc() && (num = 5);

答案 1 :(得分:1)

虽然我理解程序员天生希望用更少的代码行做更多的事情,但我认为这违反了一些关于代码清晰度的良好编程原则。 Terse代码可以节省空间,但是对于下一个查看代码的程序员来说,维护会更加困难(而且你应该总是假设会有一个“下一个程序员”)。

答案 2 :(得分:1)

MyTestFunction() && (myVar = 5);         // note the parens

// has the same effect as

if (MyTestFunction()) myVar = 5;

但我认为后者更具可读性,因此更容易维护。

答案 3 :(得分:0)

我相信你想要使用三元声明

好线程在这里: Operator precedence with Javascript Ternary operator