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

时间:2010-07-01 08:35:32

标签: javascript

采取以下javascript:

var x = (p) ? 1 : 0;

p可以是任何值。有什么情况括号可以有效吗?

如果是这样:请提供示例。

4 个答案:

答案 0 :(得分:2)

这是一个人为的例子,但是嘿,为什么不呢?

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/。如果在三元运算符的计算表达式中使用括号,则三元运算符下方的任何内容(例如“?:”)将需要括号。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

除了可读性之外,我想不出你需要括号的任何理由。

答案 3 :(得分:0)

没有。它有时通过类比来完成:

if (p)

其中括号是强制性的。