Подтвердить что ты не робот

В каком порядке указаны переменные, назначенные в Javascript?

По-видимому, это идентично в моей консоли Firebug:

var x = "A", y = x;
x + y === "AA";

и

var x = y, y = "A";
x + y === "AA";

Является ли это стандартным поведением ECMAScript, что порядок не играет роли в разделенных запятыми назначениях var?

Изменить: "Тайна" решена. Сначала я проверил первый пример, затем очистил консоль и запустил вторую. Однако в это время уже были определены y и x. Если вы запустите JSFiddle, предоставленный Дэвидом Томасом, вы всегда получаете "undefinedA". Дело урегулировано.

4b9b3361

Ответ 1

var x = y; вызовет исключение, если y не определено.

Однако объект window является контекстом по умолчанию для интерпретаторов Javascript, встроенных в браузеры. Если вы ранее выдавали:

y = "A";

Тогда вы фактически назначили "A" на window.y, поэтому var x = y; станет действительным и назначит window.y на x.