# JS 运算符优先级
前两天遇到个优先级问题:
这是之前的一段拼接 path 的代码:
var id = 123;
var name = "xiaoming";
var path = "http://www.xxx.com/?id=" + id + "&name=" + name;
console.log(path);
// http://www.xxx.com/?id=123&name=xiaoming
1
2
3
4
5
2
3
4
5
现在要加上一个判断条件: 如果 name 或者 id 是 null,则替换成空字符串。
var id = 123;
var name = "xiaoming";
var path =
"http://www.xxx.com/?id=" + id ? id : "" + "&name=" + name ? name : "";
console.log(path);
// 123
1
2
3
4
5
6
2
3
4
5
6
经验告诉我是运算符优先级问题,所以就查了一下资料,是因为:? 操作符优先级低于 + 操作符
。
加上括号是不是就清晰多了?
var id = 123;
var name = 'xiaoming';
var path =
('http://www.xxx.com/?id=' + id) ? id : '' + '&name=' + name ? name : '';
console.log(path);
// 123
1
2
3
4
5
6
2
3
4
5
6
# js 中运算符优先级
优先级从高到低