代码之家  ›  专栏  ›  技术社区  ›  doekman

在javascript表达式“(p)中有括号吗?1:0“有效果吗?

  •  0
  • doekman  · 技术社区  · 14 年前

    var x = (p) ? 1 : 0;
    

    p可以是任何值。括号在什么情况下能起作用?

    如果是:请举例说明。

    4 回复  |  直到 14 年前
        1
  •  1
  •   SiN    14 年前

    当p被划分为几个具有不同运算符的布尔表达式时,嵌套括号可以决定表达式的计算顺序。但我觉得你已经知道了,这不是问题的一部分。

    但不,括号对p整体没有影响。我也不知道为什么会有人把它们放进去,因为我不认为它们能提高可读性。

        2
  •  2
  •   Faisal    14 年前

    var y = -2;
    var x = (y+=2)?0:1?1:0;
    alert(x); // will alert '1'
    

    var y = -2;
    var x = y+=2?0:1?1:0;
    alert(x); // will alert '-2'
    

    查看此Javascript优先表: http://www.codehouse.com/javascript/precedence/ . 如果在三元运算符的求值表达式中使用,则三元运算符(例如“?:”)下面的任何内容都需要括号。

        3
  •  0
  •   Tom Gullen    14 年前

        4
  •  0
  •   bobince    14 年前

    不,有时可以类比为:

    if (p)