邪恶的eval +括号样本?

时间:2012-12-16 09:34:21

标签: javascript eval

我在网站上已经阅读了很多问题,但没有理解括号内的问题。

eval( '{a:alert(1)}'); //alert 1

但也是这个警报1:

eval( '('+'{a:alert(1)}'+')'); //alert 1

那么'()'如何帮助我?

我已经知道()使代码被视为epxression而不是语句

但我在样本中没有看到它会如何帮助。

请提供样品吗?

1 个答案:

答案 0 :(得分:1)

考虑:

eval("({a: 'my great object'}.a);");

eval("{a: 'my great object'}.a;");

正如已经提到的:第二个是带有标签的代码块,所以.a根本没有任何意义。