JavaScript的特点一般都知道的就是解释执行,逐行执行,就是从上到下依次执行。

JavaScript的执行之前,其实还是有一些操作的,只是没有表现出来

JavaScript的执行过程:

  1、语法检测  首先是大致查看有没有基本的语法错误。比如说中文、关键字错误等等

  2、词法分析(预编译)

  3、逐行执行

  预编译的过程

    1、先全局  直接是 script 标签里的代码,函数除外

      预编译时

        1、先模拟一个GO(global object) = { };

        2、分析变量声明(var)  若有则:GO = {变量名1:undefined,变量名2:undefined,……};若遇到同名的就覆盖

        3、分析函数声明(function)  若有则:GO = {变量名1:undefined,变量名2:undefined,……,函数名1:函数体1,函数名2:函数体2,……};若遇到同名的就覆盖

        4、逐行执行  有赋值就赋值到GO里相应的属性

    2、再局部  在逐行执行时 若遇到函数调用,该函数会生成自己的作用域AO(active object) = { }

        1、模拟一个AO = { }

        2、分析参数  若有则:AO = {形参 1: 实参1,形参 2: 实参2,…… }

        3、分析变量声明  若有则:AO = {形参 1: 实参1,形参 2: 实参2,…… 变量名1:undefined,变量名2:undefined,……};若遇到同名的就跳过

        4、分析函数声明  若有则:AO = {形参 1: 实参1,形参 2: 实参2,…… 变量名1:undefined,变量名2:undefined,……,函数名1:函数体1,函数名2:函数体2,……};若遇到同名的就覆盖

        5、逐行执行  有赋值就赋值到AO相应的属性,若遇到AO里没有的要赋值的,就向上一级找,一直找到GO,若GO没有,就添加到GO。

    基础步骤就是这,一步一步的来,就没有什么大问题。

突然想到这个问题,然后找了一下,觉得介绍的比较通俗易懂----------------------------------》传送阵:https://www.cnblogs.com/long-z/p/10136657.html

转载于:https://www.cnblogs.com/jockr/p/11131071.html

浏览器解析JavaScript的原理相关推荐

  1. 浏览器解析JavaScript原理

    1.浏览器解析JavaScript原理特点: 1.跨平台  2.弱类型 javascript 定义的时候不需要定义数据类型,数据类型是根据变量值来确定的.    var a = 10; 数字类型   ...

  2. 一图解析JavaScript快速排序原理,看了就不会忘~~

    时隔一年(当时是2020.05.02),再看当初写的快排,只能说能排序,但是性能比较差: 1,选取比较元素的时候,没必要浪费两次数学计算去取中间值!也就是这个是没必要的: const middleIn ...

  3. JavaScript运行原理解析

    写在前面的话: 发现使用了那么长时间的Javascript,但是对其运行原理还是不清晰,今天特意总结一下,把大神们的理论和自己的总结都记录到下面: 1. 什么是JavaScript解析引擎? 简单地说 ...

  4. 前端文摘:深入解析浏览器的幕后工作原理(转)

    前端文摘:深入解析浏览器的幕后工作原理 https://www.cnblogs.com/lhb25/p/how-browsers-work.html 您可能感兴趣的相关文章 10大流行 Metro U ...

  5. JavaScript 运行原理解析

    参考 JavaScript 运行原理解析 [先读这一篇] https://juejin.cn/post/6844903551009816589 JavaScript is one of the 3 l ...

  6. 深入解析浏览器的幕后工作原理

    前端文摘:深入解析浏览器的幕后工作原理(转载出处) 您可能感兴趣的相关文章 10大流行 Metro UI Bootstrap 主题和模板 精选12款优秀 jQuery Ajax 分页插件和教程 10大 ...

  7. 解析html网页原理,深入浅出浏览器渲染原理

    一.前言 浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分,一是"渲染引擎",二是"JS引擎". 渲染引擎在不同的浏览器也不是都相同的,比如: Fir ...

  8. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧

    原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十一章. 迄 ...

  9. JavaScript 工作原理(二)-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)

    From:https://segmentfault.com/a/1190000014770145 原文请查阅这里,略有删减. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScrip ...

最新文章

  1. 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...
  2. python 格式化方法 从其他信息构建字符串
  3. 力扣559. N 叉树的最大深度(JavaScript)
  4. php无法连接mysql(selinux)
  5. NUC1196 Sum【水题+数学题】
  6. 概率论基础知识(书本摘录总结)
  7. 最好用的伪原创工具手机app
  8. [转载]使用 Apache Geronimo 和 POJO 构建 SOA 框架
  9. maven 使用本地库
  10. Time时间格式化当前时间
  11. 一些学习经验总结和分享
  12. 简单制作《坦克大战》
  13. n9006 android6,三星N9006怎么用 三星N9006使用方法【详解】
  14. 中国现在开源系统cms 论坛排行榜
  15. jQuery.on() 函数详解
  16. android 百度转码,自适应网站移动端被百度转码解决方案
  17. window解压缩软件解压tar.gz文件遇到的坑
  18. 冶金工业概论多媒体辅助教学系统
  19. AutoCAD 2013 .net插件创建向导现在支持Map 3D,Civil 3D,AutoCAD Architecture 和AutoCAD MEP...
  20. Acer宏基笔记本电脑,宏碁暗影骑士擎AN515-58原装出厂恢复原厂预装Windows11/Win10镜像oem专用系统

热门文章

  1. python 3.9.0a0_Python 3.9.0 稳定版发布
  2. image pil 图像保存_如何利用python中的PIL库做图像处理?
  3. mysql三种引擎_MySQL常见的三种存储引擎
  4. MySQL——JSON_REPLACE()函数修改JSON属性值
  5. 异常解析————Parameter metadata not available for the given statement
  6. idea数据库反向生成实体类_asp.net core 系列 21 EF现有数据库进行反向工程
  7. php实时上传多张图片,PHP实现多张图片上传预览功能
  8. 血型算法php,血型排行榜!(真的很准)
  9. svg 地图_找地图素材?有这个网站就够了!
  10. curaengine linux编译,CuraEngine开源程序解读