javascript解释器是什么?

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

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

JavaScript解释器是用来干嘛的呢?

目的就是执行JavaScript源代码

JS解释器包含了词法解析器,句法解析器,字节码生成器,字节码解释器。


词法解析器

它可以让一行行代码源码拆分成一个个最小的词义单位。所谓的词义单位就是在语法上不能再分,最小的单个字符或者字符组合。

var number = 2;  //解析成下面的json格式
  [
      {        'type':'keyword',        'value':'var'
      },
      {        'type':'identifier',        'value':'number',
      },
      {        'type':'Punctuator',        'value':'=',
      },
      {       'type':'Numeric',       'value':'2',
      }
      {       'type':'Punctuator',       'value':';'
      }
  ]


句法分析器

将上面的分析出来的数组,根据语法规则,转换为抽象语法树,用Esprimas解析工具可以知道也转换成了json格式。

这个抽象语法树有什么用呢?
人家说压缩优化代码,这我又不懂了,然后又说编译器、IDE等都有很多用处(现在没有办法去深入技能不够)
在美团点评技术中看到了语法树可以用来重构javaScript代码


字节码生成器

它的作用呢就是把语法树转换为javaScript引擎能读懂和执行的的二进制代码。
每种javascript引擎都有自己的字节码格式,最简单的做法就是把语义单位翻译成二进制


字节码解释器

当然这个一环跟一环的,有了二进制代码了,那么接下来就是执行二进制代码咯,产生了你可以用眼睛看到的结果咯。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_7820