我最近遇到这个问题,并认为它会产生一个很好的SO问题。JavaScript语法:字符串赋值语句中的内联If
假设你正在给一个局部变量赋值一个字符串,并且你想通过一个简单的条件来改变它。所以你插入的if语句内嵌到字符串:
var someCondition = true;
var url = "beginning-" + (someCondition)?('middle'):('other_middle') + "-end";
但是,这并不如预期,URL的值将是“中等”,没有开始,中端。此声明产生预期结果:
var url = "beginning-" + ((someCondition)?('middle'):('other_middle')) + "-end";
最好的解释,为什么这是赢得令人垂涎的答案标志!
这被称为**三元操作符**。以下链接提供了运营商优先权的详细说明:http://blog.stchur.com/2006/07/14/the-javascript-ternary-operator/ – 2009-11-18 23:56:43