关键词:
预编译分为两种:
- 函数预编译 (函数执行的前一刻执行)
- 全局预编译 (页面加载完成时执行)
函数执行编译步骤:
- 创建Activation Object
- 找形参和变量声明, 将变量声明和形参作为AO的属性名, 值为undefined
- 将实参和形参值统一
- 在函数体内找函数声明,将函数名作为AO对象的属性名,值赋予函数体
代码Demo:
function fn(a)
var a = 123
function a()
var b = function ()
function d()
代码编译解释:
1.创建AO对象
AO:
2.找形参和变量声明,作为AO的属性名,值为undefined
AO
a: undefined,
b: undefined
3.将实参和形参值统一
AO:
a: 1,
b:undefined
4.在函数体内找函数声明,将函数名作为AO的属性值,值赋予函数体
AO:
a: function() ,
b:undefined,
d: function()
完成过程
AO:
a:underfined -> 1 -> function a()
b:underfined
d:function d()
全局预编译三部曲
- 创建Global object
- 找形参和变量声明, 将变量声明和形参作为GO对象的属性名,值为undefined
- 在全局里找函数声明,讲函数名为GO对象属性名,值赋予函数体
javascript预编译(代码片段)
预编译分为两种:函数预编译(函数执行的前一刻执行)全局预编译(页面加载完成时执行)函数执行编译步骤:创建ActivationObject找形参和变量声明,将变量声明和形参作为AO的属性名,值为undefined将实参和形参值统一在函数体内找函... 查看详情
javascript之预编译学习(附带多个面试题)(代码片段)
前言在学习JavaScript预编译之前,先了解一下JavaScript从编译到执行的过程,大致分为四步:词法分析语法分析:检查代码是否存在错误,若有错误,引擎会抛出语法错误。同时会构建一颗抽象语法树(AST)。... 查看详情
javascript之预编译学习(附带多个面试题)(代码片段)
前言在学习JavaScript预编译之前,先了解一下JavaScript从编译到执行的过程,大致分为四步:词法分析语法分析:检查代码是否存在错误,若有错误,引擎会抛出语法错误。同时会构建一颗抽象语法树(AST)。... 查看详情
5分钟教你读懂javascript预编译和函数执行(代码片段)
JavaScript运行三部曲JavaScript在展示页面之前会提前进行编译,因此也称之为预编译,而预编译基本分为三部分 语法分析---- (有没有基本的语法错误,例如中文,关键字错误...) 词法分析(预编译... 查看详情
预编译(代码片段)
javascript预编译部分 JavaScript当中不向其他的语言一样,在js中我们会看到一些奇怪的现象就像我们可以在函数声明之前去访问这个函数的名字,并且能够打印出函数体,而且我们还能在变量声明之前去访问这个变量,虽然值... 查看详情
javascript预编译流程详解(代码片段)
1-JavaScript运行三部曲1.语法分析2.预编译3.解释执行语法分析很简单,就是引擎检查你的代码有没有什么低级的语法错误;解释执行顾名思义便是执行代码了;预编译简单理解就是在内存中开辟一些空间,存放一些变量与函数;2-J... 查看详情
javascript正则表达式简单字符串搜索/替换转义方法(使用re速度增强-预编译)(代码片段)
javascript的预编译和执行
JavaScript引擎,不是逐条解释执行javascript代码,而是按照代码块一段段解释执行。所谓代码块就是使用<script>标签分隔的代码段。整个代码块共有两个阶段,预编译阶段和执行阶段一、编译阶段对于常见编译型语言(例... 查看详情
你不知道的javascript1(作用域与闭包)(代码片段)
1.编译原理:首先,JavaScript是解释性语言,编译一行,执行一行JavaScript运行三部曲:1.语法分析2.预编译3.解释执行语法分析:js引擎来检查代码是否存在语法错误预编译:简单理解,就是在内存中开辟一些空间来声明存放一些变... 查看详情
浅谈javascript预编译原理
这两天又把js的基础重新复习了一下,很多不懂得还是得回归基础,大家都知道js是解释性语言,就是编译一行执行一行,但是在执行的之前,系统会做一些工作:1,语法分析;2,预编译;3,解释执行。语法分析很简单,就是引擎... 查看详情
javascript预编译
...详细讲解一下大家要明白,这个预编译和编译是不一样的JavaScript是解释型语言,既然是解释型语言,就是编译一行,执行一行传统的编译会经历很多步骤,分词、解析、代码生成什么的日后有时间再给大家科普下 查看详情