67-一道巧妙的面试题

link

逗号运算符

逗号运算符用于对两个表达式求值,并返回后一个表达式的值。

1
2
3
4
5
6
'a', 'b' // "b"

var x = 0;
var y = (x++, 10);
x // 1
y // 10

上面代码中,逗号运算符返回后一个表达式的值。

左结合与右结合

少数运算符的计算顺序是从右到左,即从右边开始计算,这叫做运算符的“右结合”(right-to-left associativity)。其中,最主要的是赋值运算符(=)和三元条件运算符(?:)。

1
2
w = x = y = z;
q = a ? b : c ? d : e ? f : g;
1
2
w = (x = (y = z));
q = a ? b : (c ? d : (e ? f : g));