栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascript引擎执行的过程的理解--语法分析和预编译阶段

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript引擎执行的过程的理解--语法分析和预编译阶段

一、概述

js是一种非常灵活的语言,理解js引擎的执行过程对于我们学习js是非常有必要的。看了很多这方便文章,大多数是讲的是事件循环(event loop)或者变量提升的等,并没有全面分析其中的过程。所以觉得把这个js执行的详细过程整理一下,帮助更好的理解js。

1.1基础概念

js是单线程语言。

在浏览器中一个页面永远只有一个线程在执行js脚本代码

js是单线程怨言,但是代码解析是非常迅速的,不会发生解析阻塞。

js是异步执行的,通过实践循环(event loop)方式实现的

 

暂时我们不考虑事件循环(event loop),我们先来看这样一段代码,来确定我们是否理解js引擎的执行过程

console.log(person)console.log(personFun)var person = "saucxs";console.log(person)function personFun() {    console.log(person)    var person = "songEagle";    console.log(person)
}

personFun()console.log(person)

可以自己直接使用浏览器看出输出结果

首先我们来分析一下上面的代码,虽然很多开发人员基本上都能答出来,但是还是要啰嗦一下。

全面分析js引擎的执行过程,分为三个阶段

1、语法分析

2、预编译阶段

3、执行阶段

说明:浏览器先按照js的顺序加载