Javascript中变量作用域

 1  <script type="text/javascript">   
 2         var a = 10;
 3        
 4         var Bar = (function () {
 5             console.log(a); //undefine
 6             var a = 20;
 7             return function () { a += 1; console.log(a); };
 8         })();
 9         Bar();
10         Bar(); 
11 </script>
  • 看上面一段代码,当声明全局变量a后,在函数表达式中打出a,再声明同名的a变量,我们可以看到结果是:

 

  • 说明当全局变量在函数表达式里再次声明之前,a默认赋值为undefined.
  • 下面我们将函数表达式中的变量声明删除,看看结果:

所以,函数表达式、变量 声明他们的默认值都是undefined.

posted @ 2016-12-20 17:35  乌梅  阅读(175)  评论(0编辑  收藏  举报