什么是JavaScript AST,怎么玩呢?

抽象语法树..我总是听说在Github上编译成SpiderMonkey AST。
那么,这是JS语法树的实际标准吗? 还有V8,V8是否使用了同样的AST?

我怎么玩?

SpiderMonkey提供parsing器API 。 这可能是最容易掌握语法对象的方法。

还有像Esprima这样开放的js-jsparsing器(这是ECMAScript,实际上就是胡同)

你可以看看AST浏览器 。 一个在线工具,用于探索由10多个parsing器生成的AST。 学习一种语言的AST树是一个很好的工具。
AST浏览器源代码在Github.com 。

在这里输入图像说明


2.您也可以将您的js代码粘贴到JavaScript AST可视化器中 ,然后单击“显示ast”button,您将看到AST可见。

演示js代码:

function foo(d) { d += 3; return d+999 } function bar(d) { return d*100 } 

js ast演示

如果您想尝试从Marijnh教授https://github.com/marijnh的acronparsing器,; 请尝试以下链接: https ://astexplorer.net/

这是一个小巧,快速的JavaScriptparsing器,完全用JavaScript编写。

上面提到的JavaScript AST可视化器使用Esprima引擎,也用JavaScrpt编写。

JavaScript在parsingAST方面占主导地位,因为JavaScript引擎今天已经超级优化。 https://en.wikipedia.org/wiki/JavaScript_engine

JS语法树的SpiderMonkey AST标准? V8是否使用相同的AST?

这两个网页浏览器引擎都有用C ++编写的AST处理程序。 这就是为什么除了eval之外,大多数情况下JavaScrpt代码都会运行得很快。