奇怪的是循环元组

时间:2012-02-27 02:48:16

标签: javascript parsing

我正在编写一个JavaScript解析器,并在prototype.js库上测试它时,它在这段代码上引发了一个错误:

第4000行:

while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) {
    soFar = m[3];

    parts.push( m[1] );

    if ( m[2] ) {
        extra = m[3];
        break;
    }
}

我把它简化为:

while ( (a, b) == c ) {}

这真的是有效的JavaScript吗?根据ECMA-262,while循环具有以下语法:

while ( Expression ) Statement

(a, b) == c是什么表达式?我认为JavaScript中不支持元组吗?

1 个答案:

答案 0 :(得分:6)

这不是一个元组;这是comma operator(另见Wikipedia)。逗号运算符计算第一个操作数,然后计算第二个操作数,并产生第二个操作数的值。