我最近阅读了一个JavaScript代码,并遇到了以下这一行:

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

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

最佳答案



表达方式:

var myVar = (12, 5);

等效于:
var myVar = 5;

注意,在上面的表达式中,括号会覆盖,的优先级而不是=,否则,如果没有括号,则类似于var myVar = 12, 5的表达式就等于var myVar = 12
编辑:我可能会因为以下原因而找到此表达式:
  • 当第一个表达式有一些副作用时:
     var myVar = ( expression1, expression2);
    

    expression1的结果分配给expression2之前,myVar可能会有一些副作用,例如var mayVar = (++i, i + j);在此表达式中,将++ij相加后的增量值,并将结果分配给mayVar
  • 已修复的错误或错误:
    可能是一些错误修复/或在测试过程中,而不是分配x,开发人员想分配y,但忘记在公众依赖之前删除( )
    var myVar = (x, y);
    

    我还发现了一个错字错误,其中发问者忘了编写相同的函数,而不是编写
    var myVar = fun(x, y);
    

    他的错别字:
    var myVar = (x, y);
    

    在链接的question中。

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

    关于javascript - 该语法 “(x, y)”的名字是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21813445/

    10-11 02:57
    查看更多