javascript - Javascript 中的变量赋值顺序是什么?

标签 javascript variables variable-assignment

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

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

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

这是标准的 ECMAScript 行为吗,顺序在逗号分隔的 var 赋值中不起作用?

编辑:“谜团”解开了。我首先测试了第一个示例,然后清除了控制台并运行了第二个。然而,此时,yx已经定义好了。如果你运行 David Thomas 提供的 JSFiddle,你总是会得到一个“undefinedA”。案件结案。

最佳答案

var x = y; 如果未定义 y 将引发异常。

然而,window object 是浏览器中嵌入的 Javascript 解释器的默认上下文。如果您之前发布过:

y = "A";

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

关于javascript - Javascript 中的变量赋值顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7031843/

相关文章:

javascript - 异步函数不等待

javascript - 按下 Tab 键时出现焦点问题

php - 您可以像使用 Java 一样在 PHP 中一次分配多个变量吗?

r - 使用变量名在 R 中创建一个向量

java - 如何随机创建和分配变量并缩短 if-else 语句 (Java android)

javascript - CSS:RGB 透明度不起作用?

javascript - 如何获取具有相同 id 的特定选择器的值?

python - 增加循环内范围的上限不会使其永远运行

java - 从文本文件读取数据,一个写得不好的文本文件

node.js - 带 Sequelize 的加法和减法赋值运算符