在Javascript中分配变量的顺序是什么?

Bol*_*wyn 12 javascript variables variable-assignment

显然,这在我的Firebug控制台中是相同的:

var x = "A", y = x;
x + y === "AA";
Run Code Online (Sandbox Code Playgroud)

var x = y, y = "A";
x + y === "AA";
Run Code Online (Sandbox Code Playgroud)

这是标准的ECMAScript行为,订单在逗号分隔的var分配中不起作用吗?

编辑: "神秘"得到解决.我先测试了第一个例子,然后清理了控制台并运行了第二个例子.然而,在这个时候,yx已经被定义.如果你运行David Thomas提供的JSFiddle,你总会得到一个"undefinedA".案件已经解决

Fré*_*idi 6

var x = y;如果y没有定义,将引发异常.

但是,window对象是嵌入浏览器的Javascript解释器的默认上下文.如果你以前发过:

y = "A";
Run Code Online (Sandbox Code Playgroud)

然后你实际分配"A"window.y,因此var x = y;变得有效并分配window.yx.