我最近阅读了一个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);
在此表达式中,将++i
与j
相加后的增量值,并将结果分配给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/