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.
我尝试做 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.