4

今天我在玩一些 Javascript 代码片段,并注意到这段代码实际上会运行:

{{for(var i = 0; i < 3; i++) {{{{
  alert(i);
}}}}}}

您可以在 jsFiddle 上亲自尝试一下

为什么它运行时没有任何语法错误?重复的括号是什么意思?Javascript 是否只是忽略重复的花括号?

4

3 回答 3

12

它创建了一个新块,这实际上是无用的1因为 JavaScript 没有块范围2

1这是一个美丽的矛盾。
2然而。

于 2012-06-28T20:20:24.077 回答
6

{ x++; }是一个“块语句”。

{{{ x++; }}}是块内的块内的块。

每个块内的代码都被执行。所以在一些事情周围添加额外{}的东西并没有做任何事情。

于 2012-06-28T20:21:25.223 回答
3

括号中的括号只是描述的代码块。您的样本可以扩展到:

{
    {
        for(var i = 0; i < 3; i++)
        {
            {
                {
                    { 
                        alert(i); 
                    }
                }
            }
        }
    }
} 

这很愚蠢,但很好

于 2012-06-28T20:22:06.747 回答