奇怪的是循环元组

Nic*_*unt 4 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我把它减少到这个:

while ( (a, b) == c ) {}
Run Code Online (Sandbox Code Playgroud)

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

while ( Expression ) Statement
Run Code Online (Sandbox Code Playgroud)

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

ick*_*fay 6

那不是一个元组; 这是逗号运算符(也见维基百科).逗号运算符计算第一个操作数,然后计算第二个操作数,并生成第二个操作数的值.