Javascript 解释用逗号分隔的表达式

Javascript 解释用逗号分隔的表达式,javascript,Javascript,我试图在ember.js源代码中找到一个bug,当时我遇到了以下for循环: for (operationIndex = rangeStart = 0, len = this._operations.length; operationIndex < len; rangeStart = rangeEnd + 1, ++operationIndex) { 有人能解释一下这个声明的作用吗?我能假设循环计数器在给定上述表达式的情况下被初始化为0吗?使用这个模板: for (A; B; C) 循

我试图在ember.js源代码中找到一个bug,当时我遇到了以下for循环:

for (operationIndex = rangeStart = 0, len = this._operations.length; operationIndex < len; rangeStart = rangeEnd + 1, ++operationIndex) {
有人能解释一下这个声明的作用吗?我能假设循环计数器在给定上述表达式的情况下被初始化为0吗?

使用这个模板:

for (A; B; C)
循环声明中有三个部分。第一部分A在实际循环开始之前执行一次,通常用于声明循环迭代器,但也可用于其他用途

第二部分B是停止条件:在每次迭代开始时对其进行评估,当返回false时,循环结束

第三部分C在每次迭代结束时执行,通常用于更改循环迭代器,以便循环在某个点结束


为了再次关注您的具体问题,逗号仅用于分隔两个变量赋值。

这不是很明显吗?如果这是很明显的,我就不会发布question@Teemu,不是第二个,最后一个操作数..哦,对不起,所有正确的简单第二个逗号运算符操作数可能是另一个逗号表达式逗号运算符与此处的赋值无关,两个操作数都是独立计算的,逗号运算符返回的值不在任何地方使用,它直接进入位空间。请注意,表达式中没有声明,只有赋值。请检查这个简单的演示在。在JS中所有逗号的优先级最低,我在最后一句中回答了问题,其余的考虑了背景。逗号运算符的返回值在本例中不相关,因为您没有使用它。你问逗号在做什么,答案在这里,真的不知道你还想要什么。
for (A; B; C)