我在网站上已经阅读了很多问题,但没有理解括号内的问题。
eval( '{a:alert(1)}'); //alert 1
但也是这个警报1:
eval( '('+'{a:alert(1)}'+')'); //alert 1
那么'()'
如何帮助我?
我已经知道()
使代码被视为epxression而不是语句
但我在样本中没有看到它会如何帮助。
请提供样品吗?
答案 0 :(得分:1)
考虑:
eval("({a: 'my great object'}.a);");
和
eval("{a: 'my great object'}.a;");
正如已经提到的:第二个是带有标签的代码块,所以.a根本没有任何意义。