作用域

1.js预解析

  一个域内进行域解析的时候会提前解析var  ,fucntion ,参数(解析顺序也是这样)

2.全局的域

  每一对<script></script>标签代表一个作用域,这个作用域代表全局的,存在多个全局作用域的时候,每个全局域解析完,执行完才能到下个全局域进行解析执行。

     每个域解析执行的内容保存到大仓库中,相同名字变量替换的时候,优先级:function>常量>undefined

  Eg:

    <script>  alert(a);var a=1; </script>
    <script> alert(a); function a(){ alert("123"); } </script>
    <script> alert(a); </script>
弹出结果为:undefind,function a(){ alert("123"); },function a(){ alert("123"); }

3.局部的域

  局部域在全局的域里边,局部域也存在预解析和执行的过程,局部域首先查找当前域下的变量,不然后顺着作用域链查找父级作用域链
原文地址:https://www.cnblogs.com/zhangguangju/p/6491400.html