三元语句需要额外的括号
Extra parenthesis required for ternary statement
这是我的代码的简化版本:
var cond = true;
var res1 = "400" + cond ? "%" : "px";
var res2 = "400" + (cond ? "%" : "px");
结果如下:
res1 = "%";
res2 = "400%";
我错过了什么吗?似乎两个语句都应该等于“400%”——为什么第一个语句没有提取字符串的第一部分?
通过 JavaScript's operator precedence,条件低于加法(好吧,在这种情况下是串联)。 "400" + cond ? "%" : "px"
等同于 ("400" + cond) ? "%" : "px"
.
这是我的代码的简化版本:
var cond = true;
var res1 = "400" + cond ? "%" : "px";
var res2 = "400" + (cond ? "%" : "px");
结果如下:
res1 = "%";
res2 = "400%";
我错过了什么吗?似乎两个语句都应该等于“400%”——为什么第一个语句没有提取字符串的第一部分?
通过 JavaScript's operator precedence,条件低于加法(好吧,在这种情况下是串联)。 "400" + cond ? "%" : "px"
等同于 ("400" + cond) ? "%" : "px"
.