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.