FOR循环中的逗号运算符,这是如何工作的?

时间:2012-01-23 02:37:48

标签: javascript loops for-loop comma

有人可以在FOR语句中解释逗号运算符吗?

function funct_1(c){
    for (var a = x, e = y; 0 < c; ){ 
         var p = c/2;
         var c = c/10; // wtf, it is already defined as function argument!!
    }
}

另外,像“a ++”这样的最后一句话似乎不见了,我从未见过这样的事情。那是什么意思?谢谢!

3 个答案:

答案 0 :(得分:2)

逗号只是为多个声明添加了分隔。换句话说,您的for循环设置a等于xe等于y

至于缺少增量语句,它缺失的事实只意味着for循环不会显式增加任何变量。

答案 1 :(得分:1)

逗号只允许您在循环开始时初始化多个变量。缺少增量运算符意味着循环中必须有一些脚本最终满足终止条件,否则循环永远不会完成。

答案 2 :(得分:0)

C,C ++和JavaScript中的逗号运算符(可能是C#)的工作方式如下:

comma_operator(statement_1, statement_2) {
     execute statement_1
     return statement_2
}

因此,在循环中,它会初始化两个整数值ae,它们分别设置为xy。没有增量,因为循环正在与c进行比较,{{1}}可能设置在循环内的某处。