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

问题:

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

解答:

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

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

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

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

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

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

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

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

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

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能算法

Python学习(三)---- 集合、文件操作、字符编码和函数

https://blog.csdn.net/fgf00/article/details/52167245

902
来自专栏xingoo, 一个梦想做发明家的程序员

剑指OFFER之包含min函数的栈(九度OJ1522)

题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案...

1916
来自专栏企鹅号快讯

看完这篇文章就能当Python工程师

有句话说得好,不想做程序员的司机不是好厨师!用十分钟看完小编整理的这篇文章,分分钟钟教你做司机...不是,是厨师...哦也不是,是程序猿! 在这里我还是要介绍一...

1985
来自专栏云霄雨霁

Java虚拟机--类加载过程

1808
来自专栏PHP在线

PHP5 的对象赋值机制介绍

看到PHP设计模式中值对象模式中的例题,对于结果总感到有点疑惑。回头看了下PHP5的对象赋值才真正清楚。 复制代码 代码如下: <?php class Si...

2697
来自专栏java一日一条

教你在Java接口中定义方法

接下来,SimpleTimeClient类实现了TimeClient接口,具体代码如下:

672
来自专栏破晓之歌

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

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

1113
来自专栏云霄雨霁

Java--类和对象之基础知识

1433
来自专栏java思维导图

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

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

3456
来自专栏python小白到大牛

零基础学习python编程不可错过的学习总结,小白福利!

通过以上可以看到我们写的很贱的程序随便保存了一个.txt结尾的格式,竟然也执行了,并没有按照统一要求的.py格式来设计, 那是不是说明后缀名可以说是任意的呢?理...

1373

扫码关注云+社区