标签: 赋值

  • 连续赋值与求值顺序

    看到一个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]

    (更多…)