我最近遇到了这个问题,并认为这将成为一个很好的SO问题。

假设您正在将字符串分配给局部变量,并且希望通过简单的条件对其进行更改。因此,您可以在字符串中插入内联if语句:

var someCondition = true;
var url = "beginning-" + (someCondition)?('middle'):('other_middle') + "-end";

但这不能按预期方式工作,URL的值将是“中间”,而不是开始-中间-结束。该语句产生预期的结果:
var url = "beginning-" + ((someCondition)?('middle'):('other_middle')) + "-end";

为什么这是最好的解释,赢得了梦answer以求的答案!

最佳答案

这当然与优先级有关。

var url = "beginning-" + (someCondition)?('middle'):('other_middle') + "-end";

被解释为:
var url = ("beginning-" + (someCondition)) ? ('middle') : (('other_middle') + "-end";)

09-16 23:37