JS的作用域概念
作用域:什么样的空间去读和写 域:空间、范围、区域。。。 <script> 全局变量 全局函数 一个<script>就是一个域 作用:读、写 <script> alert(a); //结果是Undefined var a=1 </script> 为什么? <script> alert(a); //直接报错 a=1 </script> 为什么? 浏览器内部专门读取JS文件的程序:“JS解析器” 作用域="JS解析器"的工作方式 <script> alert(a); var a=1; function fn1(){ alert(2); } </script> 至少有两步: 1) "找一些东西": var function 参数; 上面那个代码预编译(预解析) :找到 var function; var a=undefined (可以理解为没有逐行运行代码之前的所有的var都是提前赋值未定义,偷懒的机制) fn1=funciton fn1(){alert(2)} (所有的函数,在正式运行代码之前,都是整个函数块) 把找到的var fn1放入一个仓库里 2)逐行解读代码: 表达式 (= + - * % / ++ --! 参数...):能够做一些改变的东西 上面代码 alert(a) 在仓库里面找到 var a