javascript - 如果我们在 JavaScript 中使用逗号,是否能保证哪个变量将首先被初始化?

标签 javascript initialization

如果我们在 JavaScript 中使用逗号,是否能保证哪个变量首先被初始化?

例如,如果我有以下代码:

var a = function() {return 2;} , b = a();

能否保证a的初始化先于b的初始化?

我知道更好的做法是每次初始化变量时使用 var 关键字。但我仍然对我的问题的答案感兴趣,因为我无法在互联网上找到 JavaScript 的答案。

正如 Trevor Dixon 所指出的那样我们可以证明 JavaScript 中的逗号运算符和列表初始化是两个不同的东西。

b = 2, a = 2; console.log(window.a, window.b); //outputs 2 2
var b = 2, a = 2; console.log(window.a, window.b); //outputs undefined undefined

谢谢。

最佳答案

我因上述错误删除了我的答案;但是,是的,the comma operator first evaluates the left expression and the right one after that

编辑:似乎使用,声明多个变量与逗号运算符无关

关于javascript - 如果我们在 JavaScript 中使用逗号,是否能保证哪个变量将首先被初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55178602/

相关文章:

javascript - 当数据为0时,如何使chartJs堆叠条形始终四舍五入?

c++ - 对于 "busybox"样式的应用程序,这种全局静态初始化的使用是否合适?

c++ - 为什么不能简单初始化(带大括号)2D std::array?

javascript - 如何使用reactjs为主题创建上下文?

javascript - 如何删除/重置window.onfocus功能?

c++ - 静态成员错误地初始化为空字符串

ios - 每当调用 View Controller 时,保存在 NSUserDefaults 中的 NSArray 的内容都会被覆盖

python - ctypes通过读取文件初始化c_int数组

javascript - 即使值没有改变也会触发 onChange

JavaScript - 对象中键值的总和,一个值加倍