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

Javascript中变量作用域-LMLPHP

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

Javascript中变量作用域-LMLPHP

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

05-04 03:08
查看更多