采取以下javascript:
var x = (p) ? 1 : 0;
p可以是任何值。有什么情况括号可以有效吗?
如果是这样:请提供示例。
答案 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)
其中括号是强制性的。