我最近看到了一些形式的JS:
function f(x) {{ return x + 1; }}
令我惊讶的是,这在语法上是合法的并且运行良好。起初我认为这是C风格的匿名范围,但它没有引入新的范围:
function f(x) {{ var y = x + 1; } return y;} // no error
为什么JS会接受这些多余的括号?他们如何解释/他们的意思是什么?
答案 0 :(得分:3)
{}
只表示代码的块或#34;组。除非与if
语句配对,否则它根本不会做任何有用的事情。 var
的范围由Javascript中的function
确定,而非块。
ES6中的新let
范围为阻止。