Javascript中变量作用域

Posted 乌梅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.

以上是关于Javascript中变量作用域的主要内容,如果未能解决你的问题,请参考以下文章

JS---闭包

JavaScript ES6 的let和const

Javascript中的作用域问题

下面JavaScript代码如何理解?块级作用域如何理?

JavaScript-变量的作用域闭包预解析

深入浅出:JavaScript作用域链