javascript - javascript 中的 (alert(1),"") 到底是什么
问题描述
我尝试做 google gruyeres XSS 挑战(http://google-gruyere.appspot.com/part2),在存储的 AJAX XSS 挑战中,他们有以下 JSON 响应的代码部分:
all <span style=display:none>"
+ (alert(1),"")
+ "</span>your base
有趣的部分是:(alert(1),"")
根据提供的解决方案,将返回空字符串。根据我的测试,alert(1) 仍然被执行。
这是某种函数的简写,还是在 JS 中会调用什么?
为什么它执行警报,然后返回空字符串?
非常感谢您的帮助!
最好的问候,
罗尔夫
解决方案
这是逗号运算符。代码执行alert(1)
,丢弃它的返回值,然后计算""
。由于这是表达式中的最后一项,因此返回其值,即空字符串。
我链接的教程描述如下:
JavaScript 中的逗号运算符会计算其每个操作数。它返回最后一个操作数的值。使用逗号运算符添加多个表达式。
推荐阅读
- ios - 一旦坐标在 Firebase 中保存为字符串,如何在 CLLLoationDegrees 中获取它们来计算用户之间的距离?
- ios - xcode - webview 内容显示在状态栏中
- python-3.x - 递归反转列表python抛出错误
- omnet++ - 如何在 omnet++ 中记录应用程序 int 变量?
- pandas - 在特定列上添加来自其他数据框的列,同时保留原始索引
- python - 对返回“无”的两列应用操作
- postgresql - 如何按 varchar 类型字段的年份分区
- javascript - 如何将 2 个数据模型源传递给 SearchField
- cors - 无法加载外部 API 定义
- php - 非常简单的 excel 文件到 php 数组返回给我太多的嵌套数组?