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

时间:2011-04-07 11:54:21

标签: javascript operators comma-operator

MDN声称:

  

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

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

我误解了什么吗?

3 个答案:

答案 0 :(得分:19)

在函数调用的上下文中,逗号用于将参数彼此分开。所以你要做的就是将第二个参数传递给alert(),这个参数会被忽略。

你想要的是这样的:

 alert((1,2));

额外的括号自己形成一个参数;在它们内部,您可以使用逗号作为运算符。

答案 1 :(得分:6)

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

改为使用alert((1,2))

答案 2 :(得分:2)

当你这样使用它时,逗号不是运算符,它是调用alert方法的参数之间的分隔符。

如果你在它们周围放置括号以使它成为表达式,它会显示2

alert( (1,2) );