连续赋值与求值顺序 看到一个2010 年的帖子[1],里面讨论了一段 JavaScript 代码: var a = {n:1}; a.x = a = {n:2}; alert(a.x); // --> undefined 帖子里有很多的讨论来分析为何 a.x 是 undefined,下面是我的一些思考。 首先,在JavaScript中,有以下几点需要明确的: 可以说一切都是对象 赋值运算符(=)是除逗号运算符(,)外优先级最低的,并且是右结合的。[2] 求值顺序[3]是从左向右的[4]。 继续阅读 →