【答疑释惑】JavaScript解释器是干什么用的?

问题:

JavaScript解释器主要是干什么用的?他不是一门语言吗?

解答:

JavaScript是一门脚本语言,是需要被别人解释执行的,这个别人就是JavaScript解释器。它读取一条JS语句、翻译、执行,然后再读取下一条JS语句,周而复始。

解释器的总体结构如图所示。整个解释器以总控程序为中心调用其它模块。图中各模块功能简要介绍如下:

1 词法分析:以嵌入脚本程序作为输入形成单词链表,以便语法分析。单词链表为双向链表结构。

2 语法分析:以单词链表为输入,依照语言的语法规则形成中间数据结构。中间数据结构能够反映出程序语句描述的数据处理流程。

3 解释执行器:以中间数据结构为输入负责对语句解释执行的控制。

4 语句解释器:完成各类型控制语句的解释执行,该模块可能会调用解释执行器而形成递归调用。

5 表达式规约器:由语句解释器来调用,它负责在语句解释执行过程中完成各类型表达式的运算和赋值语句的执行。

6 与浏览器交互:完成在表达式运算过程中对当前文档对象和文本中各种控件对象的属性值的修改并通过改变浏览器的输出显示表现出来。

部分参考:张军林(华中科技大学计算机学院)

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

JSON

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式...

2208
来自专栏Laoqi's Linux运维专列

While 循环语句

4619
来自专栏云霄雨霁

Java虚拟机--类加载过程

1738
来自专栏java一日一条

教你在Java接口中定义方法

基本上所有的Java教程都会告诉我们Java接口的方法都是public、abstract类型的,没有方法体的。

691
来自专栏java思维导图

【一分钟知识】try catch finally执行顺序,final finally finalize的区别

final、finally、finalize的区别 final 如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstrac...

3396
来自专栏我的博客

调试小技巧file_put_contents() 和var_export以及var_dump

file_put_contents() 函数把一个字符串写入文件中。 我们要将数组打印到文件中,我们可以使用 <?php $arr = array( ‘...

3044
来自专栏破晓之歌

python 模板实现-引擎的编写(有时间试一下)

1.模板的编写:https://blog.csdn.net/MageeLen/article/details/68920913

953
来自专栏用户3030674的专栏

java单例模式

单例设计模式:解决一个类在内存中只存在一个对象  多用于环境变量设置等  单例模式的要求:1.只能有一个对象,禁止其他程序建立该类对象          2....

581
来自专栏程序员八阿哥

Python从入门到摔门(5):18式优雅你的Python

在cmd中输入jupyter notebook --generate-config,然后找到生成的配置文件jupyter_notebook_config.py,...

782
来自专栏IMWeb前端团队

打开Promise的正确姿势

引言 最近实践中需要用到大量的异步回调风格代码的编写,作者最近处于同步编程风格转为异步编程风格的状态。同时第一时间遇到了下面提到的代码,第一直觉就是该代码肯定有...

2775

扫码关注云+社区