返回顶部
首页 > 资讯 > 前端开发 > html >javascript中预编译指的是什么意思
  • 577
分享到

javascript中预编译指的是什么意思

2024-04-02 19:04:59 577人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关javascript中预编译指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在JavaScript中

这篇文章将为大家详细讲解有关javascript中预编译指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在JavaScript中,预编译就是代码执行前进行的一项操作,会把变量声明提前,函数声明也提前,把这些按照一定的规则,放在创建的对象里面去的一个过程。

教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

javascript中什么是预编译

js运行三部曲

1.语法分析 : js引擎在解析js代码之前,会先通篇扫描一下,找出低级的语法错误,比如写错大括号之类的。

2.预编译 任何的语法和语句全部会被转换成对象,Go(Global Object),AO(Active Object)把代码按照 一定的规则,放到GO和AO中

3.解释执行 编译一行执行一行,当语法分析没有问题,并且已经完成预编译阶段之后,就开始解释执行代码

什么的预编译?

预编译就是在JavaScript代码前进行的一项操作会把变量声明提前,函数声明也提前,把这些代码按照一定的规则,放在创建的对象里面去。

预编译的过程:

GO window预编译

1,在执行script标签的一瞬间创建一个GO对象

2,寻找变量声明,变量名作为GO对象的属性名,值为undefined。

3,寻找函数声明,函数名作为GO对象的属性名,值为函数体,如果函数名和变量名一样,直接覆盖

AO 函数预编译

1,在函数执行的一瞬间创建一个AO对象

2,寻找实参和形参,将形参作为AO对象的属性名添加到对象中,值为实参,值得注意的是,函数声明不叫变量。如果没有实参值就是undefined。

3,寻找变量声明,变量名作为AO对象的属性名,值为undefined。如果变量名和形参名一样不用管。

4 ,寻找函数声明,函数名作为AO对象的属性名,值为函数体,如果函数名和变量名一样,直接覆盖

下面我们来写一段代码来简单介绍一哈函数预编译的过程

function fun(a,b){
    console.log(a);
    var a = 10;
    console.log(a);
    function a(){}
    console.log(a)
    a = 1;
    var b;
    console.log(b);
    var b = function(){}
    console.log(b);
}
fun(1,2);

1首先在执行fun之前会创建一个AO对象。

funAO{
}

2,寻找实参和形参,将形参作为AO对象的属性名添加到对象中,值为实参,值得注意的是,函数声明不叫变量。如果没有实参值就是undefined。

funAO{
    a : 1,
    b : 2
}

3,寻找变量声明,变量名作为AO对象的属性名,值为undefined。如果变量名和形参名一样不用管

funAO{
    a : 1,
    b : 2
}

4 ,寻找函数声明,函数名作为AO对象的属性名,值为函数体,如果函数名和变量名一样,直接覆盖

funAO{
    a : function a(){},
    b : 2
}

解释执行

function fun(a,b){
    console.log(a);  //往上面的AO对象里面寻找,a的值是function a(){}。 这里就输出function a(){}
    var a = 10;
    console.log(a);//上面一行代码把a赋值10 ,所以这里输出10
    function a(){}
    console.log(a)//这里也是10,因为上面函数已经提前了
    a = 1;
    var b;
    console.log(b);//往上面的AO对象里面寻找,b的值是2。 这里就输出2
    var b = function(){}//这里的函数为啥不能提前,因为这里的是一个函数表达式,这个函数没有函数名所以不能提前。
    console.log(b);//这里把b赋值function(){},所以这里输出function(){}
}
fun(1,2);

还有一种可能

function add(){
//这里的话碰到if判断,for....除了function作用域之外的咱们都得正常分析,
//所以这里的值为undefined其实就是var a提前了赋值undefined
    console.log(a);//这里的输出结果为?undefined
    if(a){
        var a = 10;
    }
    //这里是把a的值传入判断里面undefined返回的是false所以进不去,值就不会改变这里还是undefined
    console.log(a);//undefined
}
add();

这上面就是预编译的执行过程!

关于“javascript中预编译指的是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: javascript中预编译指的是什么意思

本文链接: https://lsjlt.com/news/92875.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • javascript中预编译指的是什么意思
    这篇文章将为大家详细讲解有关javascript中预编译指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在JavaScript中...
    99+
    2024-04-02
  • JavaScript预编译什么意思
    这期内容当中小编将会给大家带来有关JavaScript预编译什么意思,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JS运行三部曲js运行代码共分三步语法分析预编译解释执行JavaScript代码在运行时,...
    99+
    2023-06-06
  • javascript中$指的是什么意思
    小编给大家分享一下javascript中$指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!javascript中“$”的意思:1、“$”可以用来表示变...
    99+
    2023-06-14
  • javascript中$是指什么意思
    小编给大家分享一下javascript中$是指什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript可以做什么1.可以使网页具有交互性,例如响...
    99+
    2023-06-14
  • javascript预编译的功能是什么
    本篇内容主要讲解“javascript预编译的功能是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript预编译的功能是什么”吧! ...
    99+
    2024-04-02
  • JavaScript预编译过程是什么
    本篇内容介绍了“JavaScript预编译过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!阶段(三...
    99+
    2024-04-02
  • javascript中类指的是什么意思
    小编给大家分享一下javascript中类指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • javascript中window指的是什么意思
    小编给大家分享一下javascript中window指的是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 在javascript中,window的意思为...
    99+
    2024-04-02
  • javascript中const指的是什么意思
    这篇文章将为大家详细讲解有关javascript中const指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在JavaScrip...
    99+
    2024-04-02
  • javascript中export指的是什么意思
    这篇文章主要介绍了javascript中export指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • javascript中writeln指的是什么意思
    小编给大家分享一下javascript中writeln指的是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • JavaScript中wrap指的是什么意思
    这篇文章主要介绍了JavaScript中wrap指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 J...
    99+
    2024-04-02
  • javascript中log指的是什么意思
    这篇文章将为大家详细讲解有关javascript中log指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 JavaScript中l...
    99+
    2024-04-02
  • JavaScript中style指的是什么意思
    这篇文章主要介绍了JavaScript中style指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • javascript中bind指的是什么意思
    这篇文章给大家分享的是有关javascript中bind指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaSc...
    99+
    2023-06-14
  • JavaScript中new指的是什么意思
    这篇文章主要介绍了JavaScript中new指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript中new是一种操作符,用来实例化一个对象的;比如...
    99+
    2023-06-15
  • javascript中this指的是什么意思
    这篇文章给大家分享的是有关javascript中this指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被...
    99+
    2023-06-14
  • javascript中var指的是什么意思
    这篇文章主要介绍javascript中var指的是什么意思,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaSc...
    99+
    2023-06-14
  • javascript中match指的是什么意思
    这篇文章主要介绍了javascript中match指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。javascript match是一种用于在字符串内检索指定的值...
    99+
    2023-06-14
  • javascript中array指的是什么意思
    这篇文章给大家分享的是有关javascript中array指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript中array是指数组,而数组对象是使用单独的变量名来存储一系列的值;数组可...
    99+
    2023-06-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作