javascript运行机制之执行顺序详解

1、代码块

  • 指的的是有<script>标签分割的代码段。
    例如:
<script type="text/javascript">
      alert("这是代码块一");
</script>
<script type="text/javascript">
      alert("这是代码块二");
</script>
  • 代码块之间相互独立,变量和方法共享,其中一个代码块出现问题不影响另一个代码的运行。

2、声明式函数与赋值式函数

<script type="text/javascript">
     function Fn(){ //声明式函数
            
     }
        
     var Fn = function(){  //赋值式函数
            
     }
</script>

\color{#FF00FF}{在JS的预编译期,声明式函数会先被提取出来,然后才按照顺序执行js代码。}

3、预编译期与执行期

  • 预编译期js会对所有声明比那里和函数(仅限声明式函数)进行处理,变量只是声明不会进行初始化以及赋值操作。
  • 同名函数后者会覆盖前者。
<script type="text/javascript">
      Fn();  //执行结果:"执行了声明式函数",在预编译期声明函数及被处理了,所以即使Fn()调用函数放在声明函数前也能执行。
      function Fn(){ //声明式函数
         alert("执行了声明式函数");
      }
        
      var Fn = function(){  //赋值式函数
         alert("执行了赋值式函数");
      }
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。