Skip to content

几步搞懂 JavaScript 预编译流程

Published: at 14:51

前言:22届菜鸡前端正在实习中,总感觉基础不牢固,正在补 JavaScript 基础,随笔记录所学、所想。

一、函数体中的预编译过程

在函数体中搞懂javascript的预编译流程,下面先看代码,打印出执行顺序:

function test(a) {
  console.log(a);
  var a = 1;
  console.log(a);
  function a() {}
  console.log(a);
  var b = function () {};
  console.log(b);
  function c() {}
  console.log(c);
}
test(1);

先说答案,依次执行顺序为:

  1. function a() { }
  2. 1
  3. 1
  4. function () { }
  5. function c() { }

为什么?下面解释一下预编译的流程,函数体中只需要4步即可搞懂:

  1. 找形参和变量声明
  2. 找实参
  3. 找函数声明
  4. 依次执行 当页面初次加载时,首先会执行 test(1) 函数,然后执行内部操作。

第一步:找每个形式参数:

二、全局预编译过程

作用于全局作用域中的预编译过程,下面看代码,打印出执行顺序:

var b = 1;
console.log(a);
function a(a) {
  console.log(a);
  var a = 2;
  console.log(a);
  function a() {}
  var b = 5;
  console.log(b);
}
a(1);

先说答案,依次执行顺序为:

  1. function a(a){ // ...函数内 }
  2. function a() { }
  3. 2
  4. 5

下面详细说一下全局的预编译流程,全局作用域中,只需要3步即可搞懂:

  1. 找函数声明
  2. 找变量声明
  3. 依次执行

第一步:找函数声明

以上就是 JavaScript 中预编译的执行过程,虽然很基础,但是日常开发中用处非常大,建议多看几遍,有些许绕圈的感觉~ 注意:以下为同一个作用域内

三、关于


Previous Post
体操支配的恐惧之 TypeScript 类型编程的意义
Next Post
webpack 基础知识