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

时间:2023-02-11 07:51:04

1、代码块

  • 指的的是有标签分割的代码段。

    例如:
<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>