var y = 1, x = y = typeof x; x;
var y = 1, x = y = typeof x; x;//"undefined"
我们试图分解上述代码成下面两步:
var y = 1; //step 1 var x = y = typeof x; //step 2
第一步应该没有异议,我们直接看第二步
- 赋值表达式从右向左执行
y
被重新赋值为typeof x
的结果,也就是undefined
x
被赋值为右边表达式(y = typeof x
)的结果,也就是undefined