《高级程序设计》
- 作用域的前端,始终是当前的执行的代码所在的执行环境的变量对象
- 作用域与定义时的环境有关,而不是执行时的环境
- JavaScript中的函数运行在它们被定义的作用域里,而不是被执行的作用域里
- scope chain(作用域)
- 一个函数被定义时,会将它定义时刻的scope chain(作用域)链接到函数对象的[[scope]]属性
- 这个函数被调用时,会创建一个活动对象,并把此函数的形参,局部变量。然后把这个活动对象推到作用域的最前端
- JS的预编译是以段为处理单元的
<script> alert(typeof eve); // undefined因为在这一段没有预处理到eve </script> <script> function eve () { alert('hi'); } </script>