块级作用域通常称为私有作用域
- 什么叫没有块级作用域概念?- 在块语句(if/while/do-while/for/switch)中定义的变量,实际上是在包含函数中而非语句中创建。函数内部可以随意使用它。
- 函数内部多次声明(注意只是多次声明,没有初始化),只会对后续的声明视而不见
 
| 1 | function outputNumbers(count){ | 
- 用作块级作用域(私有作用域)的匿名函数语法:
| 1 | (function(){ | 
这种语法不好理解,那么解释演化如下:
| 1 | var someFunction=function(){ | 
- 无论什么地方,只要临时需要一些变量,就可以使用私有作用域。 或者要加闭包时。 - 1 
 2
 3
 4
 5
 6
 7
 8
 9- function outputNumbers(count){ 
 (function(){
 for(var i=0;i<count;i++){
 alert(i);
 }
 })();
 
 alert(i); //导致一个错误,因为访问不到i
 }
- 通常的用途:在全局作用域中被用在函数外部,从而限制向全局作用域中添加过多的变量和函数。或者加闭包时。 
