Javascript的引用顺序

way*_*ure 1 javascript

以下语句的运行顺序是什么?运行时是从右到左执行它吗?

  length = i = test = output = null;
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 6

是的,因为赋值表达式本身不是左手边的表达式,所以嵌套是

(length = (i = (test = (output = null))));
Run Code Online (Sandbox Code Playgroud)

它从外向内执行,从左到右解决引用(首先获取length变量,然后评估右侧,即获取i变量并进行评估......).这意味着output第一个变量被分配给,然后test,然后i和最后length:如果你想要的话,"从右到左".由于赋值运算符总是产生其右操作数,因此将为所有内容分配相同的(最里面的,最右边的)值:null.