逗号运算符在参数列表中返回第一个值而不是第二个?

11

MDN声称:

逗号运算符从左到右依次对其两个操作数求值,并返回第二个操作数的值

但是,当我尝试运行<script> alert(1, 2); </script>时,它显示的是“1”,而不是“2”。

我是否有什么误解?

3个回答

19

在函数调用的上下文中,逗号用于将参数彼此分隔。所以你正在向alert()传递第二个参数,但这个参数会被默默地忽略。

要实现你想要的功能,可以按照以下方式进行:

 alert((1,2));
额外的括号本身形成一个参数;你可以在这些括号内使用逗号作为运算符。

6

逗号(,)也是参数分隔符。

使用alert((1,2))代替。


2
当您这样使用时,逗号不是运算符,而是在调用alert方法时参数之间的分隔符。
如果您将它们放在括号中,使其成为表达式,则会显示2
alert( (1,2) );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接