因为我习惯了 C 和 Java,所以我发现 Javascript 缺少块作用域有点令人讨厌。有时我发现自己想要声明然后立即执行一个内联函数来解决这个问题。例如:
...
if (x == 0) {
(function () {
var i;
for (i = 0; i < 10; i++) {
...
}
})();
}
...
否则,我觉得有必要在作用域的顶部声明一个函数的所有变量,以避免忘记缺少块作用域。但是在函数的开头有一个巨大的 var 语句对我来说看起来很笨拙。
我在上面展示的方式感觉很浪费,但我不知道首先声明内联函数的成本是多少。这样做是一个坏主意吗?有没有更好的方法来解决我对 Javascript 范围的疑虑?