javascript 中的 (alert(1),"") 到底是什么

What exactly is (alert(1),"") in javascript

我尝试做 google gruyeres XSS 挑战(http://google-gruyere.appspot.com/part2),在存储的 AJAX XSS 挑战中,他们有以下代码部分用于 JSON 响应:

all <span style=display:none>"
+ (alert(1),"")
+ "</span>your base

有趣的部分是:(alert(1),"")

根据提供的解决方案,空字符串得到 returned。根据我的测试,alert(1) 仍然会被执行。

这是某种函数吗shorthand,或者这在 JS 中被称为什么?
为什么它执行警报,然后 return 空字符串?

非常感谢您的帮助!

此致,
罗尔夫

这是comma operator。代码执行 alert(1),丢弃其 return 值,然后计算 ""。由于这是表达式中的最后一项,因此它的值为 returned,即空字符串。

我链接的教程描述如下:

The comma operator in JavaScript evaluates each of its operands. It returns the value of the last operand. Add multiple expressions using the comma operator.