我今天在玩一些Javascript片段,注意到这段代码实际上可以运行:
{{for(var i = 0; i < 3; i++) {{{{
alert(i);
}}}}}}
您可以在jsFiddle上亲自尝试一下。
为什么运行没有任何语法错误?重复的括号是什么意思?Javascript只是忽略重复的大括号吗?
它创建了一个新块,这实际上是无用的1,因为 JavaScript 没有块范围2。
1 这是一个美丽的矛盾.
2 然而。
>{ x++; }
是一个"块语句"。
{{{ x++; }}}
是块中的块。
执行每个块中的代码。 因此,在某事周围添加额外的{}
没有任何作用。
括号
中的括号只是划定的代码块。您的样本可以扩展到:
{
{
for(var i = 0; i < 3; i++)
{
{
{
{
alert(i);
}
}
}
}
}
}
这很愚蠢,但很好