这个语法“(x,y)”的名称是什么?

时间:2014-02-16 15:48:00

标签: javascript syntax

我最近阅读了一段javascript代码,我发现了这一行:

var myVar = (12,5); // myVar==5 now

这个奇怪的语法是什么:(x, y)

3 个答案:

答案 0 :(得分:7)

  

Comma Operator: ,

     

逗号运算符,left-to-right associativity。两个表达   用逗号分隔从左到右进行评估。左操作数是   总是评估,所有副作用都在右边完成   操作数被评估。

表达式:

var myVar = (12, 5);

相当于:

var myVar = 5;

注意,在上面的表达式中,括号将覆盖,优先于=的优先级,否则不加括号,var myVar = 12, 5等表达式等同于var myVar = 12
修改:我猜您可以找到以下原因:

  1. 当第一个表达式有一些副作用时:

     var myVar = ( expression1, expression2);
    

    在将expression1的结果分配给expression2之前,myVar可能会产生一些副作用,例如: var mayVar = (++i, i + j);在此表达式中,++i添加j后会增加值,结果将分配给mayVar

  2. 修正了错误或错误:
    可能是某些错误修复/或在测试期间,而不是分配x开发人员想要分配y忘记以删除( )公共依赖之前。

    var myVar = (x, y);
    

    我还发现了一个错误的错误,其中提问者忘记写功能相同而不是写

    var myVar = fun(x, y);
    

    他的错字:

    var myVar = (x, y);
    

    在链接的question中。

  3. 这不是JavaScript链接,而是非常有趣的C ++链接,其中讨论了合法/或可能使用逗号运算符What is the proper use of the comma operator?

答案 1 :(得分:1)

它被称为逗号运算符,我们通常在我们想要在一个表达式中运行2个语句时使用它们,它会计算2个操作数(从左到右)并返回第二个操作数的值。

在此处查看:comma operator

如果您想了解它的用途,请阅读this question

答案 2 :(得分:0)

这称为comma operator

逗号运算符计算其两个操作数(从左到右)并返回第二个操作数的值。

以下是一些例子:

 var a = (12,3) //a =3;
 var b = (a+2, 2) //a=5, b= 2
 var c = (a,b) // a= 5, b=2, c=2.