2

您可以使用这样的独立积木......

var something = 1;
{
  var something = 2;
  print("Inside: " + something);
}
print("Outside: " + something);

这来自:http ://eloquentjavascript.net/chapter3.html#p3c7ae609

但是有这样的块有什么意义呢?它的用途是什么?

4

4 回答 4

3

在 ES6 中会有用 声明的块范围变量let,在这些变量中,独立的块将不再毫无意义。

于 2012-09-28T19:23:49.190 回答
3

独立块通常不会在脚本中添加任何值,但是它们可以用于代码组织,例如拆分方程式:

一条线:
//long equations are hard to read
foo = bar * baz + fizz - buzz;
堵塞:
{
    //this groups relevant information into a descrete section
    foo = bar;
    foo *= baz;
    foo += fizz;
    foo -= buzz;
}

虽然,基于一组标准输入执行操作的长方程通常分解成它们自己的函数:

作为函数:
function qux(bar, baz, fizz, buzz) {
    var ret;
    ret = bar;
    ret *= baz;
    ret += fizz;
    ret -= buzz;
    return ret;
}

foo = qux(bar, baz, fizz, buzz);
于 2012-09-28T19:25:22.560 回答
1

哎呀,我一直在读,这是我的答案:

事实上,虽然允许这样的块,但它们完全没有意义。

http://eloquentjavascript.net/chapter3.html#p6f53387f

于 2012-09-28T19:23:39.407 回答
0

你是在自问自答。从 OP 中链接的文章:

事实上,虽然允许这样的块,但它们完全没有意义。

于 2012-09-28T19:24:11.330 回答