三元陈述需要额外的括号

时间:2016-09-07 00:42:03

标签: javascript ternary

以下是我的代码的简化版本:

var cond = true;
var res1 = "400" + cond ? "%" : "px";
var res2 = "400" + (cond ? "%" : "px");

结果如下:

res1 = "%";
res2 = "400%";

我错过了什么吗?看起来这两个陈述应该等于" 400%" - 为什么第一个没有拿起字符串的第一部分?

1 个答案:

答案 0 :(得分:5)

JavaScript's operator precedence,条件低​​于加法(嗯,连接,在这种情况下)。 "400" + cond ? "%" : "px"相当于("400" + cond) ? "%" : "px"