我最近遇到了这个问题,并认为这将成为一个很好的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";)