【答疑释惑】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

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

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

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

1966
来自专栏企鹅号快讯

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

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

2135
来自专栏IMWeb前端团队

打开Promise的正确姿势

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

3845
来自专栏我的博客

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

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

4404
来自专栏PHP在线

PHP5 的对象赋值机制介绍

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

2867
来自专栏程序员八阿哥

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

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

1042
来自专栏云霄雨霁

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

1573
来自专栏白驹过隙

Python - 学习经验分享

32312
来自专栏用户3030674的专栏

java单例模式

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

991

扫码关注云+社区

领取腾讯云代金券