在没有任何东西之前编写闭包

kar*_*una 1 javascript closures

它在JavaScript中意味着什么,何时应该使用它?(抱歉问题标题,想不到更好:))

{
   var something = 'test';
   // etc..
}
Run Code Online (Sandbox Code Playgroud)

dec*_*eze 8

这不代表任何意思.{ }将声明组合在一起,仅此而已.它不会影响范围或创建闭包或其他任何东西.它通常像这样使用:

if (true)
    foo();  // one statement

if (true) { // one group of statements
    bar();
    baz();
}
Run Code Online (Sandbox Code Playgroud)

没有if或类似的结构它仍然对语句进行分组,只是没有太大的影响.

有一个例外:Javascript"1.7"定义let,它声明了块范围内的变量.即声明的变量范围varfunction () { }声明的影响,声明let由简单{ }块声明的变量范围.这尚未得到广泛支持.