标签归档:连续赋值

连续赋值与求值顺序

看到一个2010 年的帖子[1],里面讨论了一段 JavaScript 代码:

var a = {n:1};
a.x = a = {n:2};  
alert(a.x);     // --> undefined 

帖子里有很多的讨论来分析为何 a.xundefined,下面是我的一些思考。

首先,在JavaScript中,有以下几点需要明确的:

  1. 可以说一切都是对象
  2. 赋值运算符(=)是除逗号运算符(,)外优先级最低的,并且是右结合的。[2]
  3. 求值顺序[3]是从左向右的[4]

继续阅读