以下是我的代码的简化版本:
var cond = true;
var res1 = "400" + cond ? "%" : "px";
var res2 = "400" + (cond ? "%" : "px");
结果如下:
res1 = "%";
res2 = "400%";
我错过了什么吗?看起来这两个陈述应该等于" 400%" - 为什么第一个没有拿起字符串的第一部分?
答案 0 :(得分:5)
按JavaScript's operator precedence,条件低于加法(嗯,连接,在这种情况下)。 "400" + cond ? "%" : "px"
相当于("400" + cond) ? "%" : "px"
。