优先级网址
优先级:
a && b || c ? c || b ? a : c && b :a// 从优先级网址可以看出
// &&的优先级为:6
// ||的优先级为:5
// ...?...:...的优先级为:4
所以上面的执行顺序为(括号的优先级最高为20):
((a && b) || c) ? (c || b) ? a : (c && b) : a
关联:
a ? b : c ? d : e// 优先级列表第4: ... ? ... : ... 表明(Associativity:right-to-left)即从右到左
// 所以上面的执行顺序是 a ? b : ( c ? d : e)具体:
true ? false : true ? true : false;// 虽然
// true ? false : ( true ? true : false); // false
// (true ? false : true) ? true : false; // false
// 执行结果是一样的.但是过程确是不一样的
优先级+关联:
var a = 42;
var b = "foo";
var c = false;
var d = a && b || c ? c || b ? a : c && b : a;// d = ((a && b) || c) ? ((c || b) ? a : (c&&b)) : a
// d = 42
参考《你不知道的JavaScript》(中卷) P108~P110