为什么 `function() {{` 在 JS 中是合法的?
Why is `function() {{` legal in JS?
我最近看到一些 JS 的形式:
function f(x) {{ return x + 1; }}
令我惊讶的是,这在语法上是合法的并且工作正常。起初我以为是C风格的匿名作用域,但它并没有引入新的作用域:
function f(x) {{ var y = x + 1; } return y;} // no error
为什么 JS 接受这些多余的括号?他们是什么意思interpreted/what?
{}
仅表示代码块或 "group"。除非与 if
语句配对,否则它根本不会做任何有用的事情。 var
的范围由 Javascript 中的 function
决定,而不是块。
ES6 中新的 let
作用域到块。
我最近看到一些 JS 的形式:
function f(x) {{ return x + 1; }}
令我惊讶的是,这在语法上是合法的并且工作正常。起初我以为是C风格的匿名作用域,但它并没有引入新的作用域:
function f(x) {{ var y = x + 1; } return y;} // no error
为什么 JS 接受这些多余的括号?他们是什么意思interpreted/what?
{}
仅表示代码块或 "group"。除非与 if
语句配对,否则它根本不会做任何有用的事情。 var
的范围由 Javascript 中的 function
决定,而不是块。
ES6 中新的 let
作用域到块。