javascript预编译的功能是什么

  介绍

本篇内容主要讲解“javascript预编译的功能是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习”javascript预编译的功能是什么”吧!

javascript预编译做了:1,语法分析,就是引擎检查你的代码有没有什么低级的语法错误;2、预编译、简单理解就是在内存中开辟一些空间,存放一些变量与函数;3、解释执行,顾名思义便是执行代码了。

本教程操作环境:windows7多系统,javascript1.8.5版,戴尔G3电脑。

javascript运行三部曲

<李>

语法分析

<李>

预编译

<李>

解释执行

语法分析很简单,就是引擎检查你的代码有没有什么低级的语法错误;解释执行顾名思义便是执行代码了;预编译简单理解就是在内存中开辟一些空间,存放一些变量与函数;

JS预编译什么时候发生

预编译到底什么时候发生吗?误以为预编译仅仅发生在脚本内代码块执行前这倒并没有错预编译确确实实在脚本代码内执行前发生了但是它大部分会发生在函数执行前

实例分析

先来区分理解一下这2个概念:变量声明var…函数声明函数(){}

& lt; script>   var  a =, 1;   console.log(一个);   function 测试(a), {   console.log才能(一个);   var 才能;a =, 123;   console.log才能(一个);   function 才能;(),{}   console.log才能(一个);   var 才能;b =,()函数,{}   console.log才能(b);   function 才能;d (), {}   }   var  c =, function  () {   console.log(“小姐:at  C  function");   }   console.log (c);   测试(2);   & lt;/script>

分析过程如下:

<李>

页面产生便创建了去全局对象(全局对象)(也就是窗口对象),

<李>

第一个脚本文件加载;脚本加载完毕后,分析语法是否合法;

<李>

开始预编译查找变量声明,作为走属性,值赋予未定义的;

<李>

查找函数声明,作为走属性,值赋予函数体;

预编译

//抽象描述   ,,,去/window =, {   ,,,,,,,,,没有定义,   ,,,,,,,,,没有定义,   ,,,,,,,测试:,函数(a), {   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,var  a =, 123;   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,function 一个(),{}   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,var  b =,()函数,{}   ,,,,,,,,,,,console.log (b);   ,,,,,,,,,,,function  d (), {}   ,,,,,,,}   ,,,}

解释执行代码(直到执行调用函数测试(2)语句)

//抽象描述   ,,,去/window =, {   ,,,,,,,,,,   ,,,,,,,,,function  () {   ,,,,,,,,,,,console.log(“小姐:at  C  function");   ,,,,,,,}   ,,,,,,,测试:,函数(a), {   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,var  a =, 123;   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,function 一个(),{}   ,,,,,,,,,,,console.log(一个);   ,,,,,,,,,,,var  b =,()函数,{}   ,,,,,,,,,,,console.log (b);   ,,,,,,,,,,,function  d (), {}   ,,,,,,,}   ,,,}

执行函数测试()之前,发生预编译

<李>

创建AO活动对象(活动对象);

<李>

查找形参和变量声明,值赋予未定义的;

<李>

实参值赋给形参,

<李>

查找函数声明,值赋予函数体;

预编译之前面1、2两小步如下:

//抽象描述   ,,,AO =, {   ,,,,,,,答:没有定义,   ,,,,,,,b:定义,   ,,,}

预编译之第3步如下:

//抽象描述   ,,,,,,,AO =, {   ,,,,,,,,,,,,,   ,,,,,,,,,,,b:定义,   ,,,,,,,}

预编译之第4步如下:

//抽象描述   ,,,AO =, {   ,,,,,,,答:function 一个(),{},   ,,,,,,,b:定义   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

javascript预编译的功能是什么