在计算机科学中,抽象语法树(Abstract Syntax Tree,AST)或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
这是一段引自百科上的解释,什么意思呢?让我们一起来看下面这个例子:
可以看到,非常简单的一句初始化赋值代码 var str = ""hello world"" 被拆解成了多个部分,并用一棵树的形式表示了出来。(如果想查看更多源代码对应的 AST,可以使用神器 astexplorer 在线尝试)
其实,我们每天日常工作都在使用的 js 代码编译工具 — Babel,它也离不开AST。为了将 ES6 甚至更高版本的 js 语法转换成浏览器兼容性更好的 ES5 代码,Babel 每次都需要先将源代码解析成 AST,然后修改 AST 使其符合 ES5 语法,最后再重新生成代码。总结一下就是3 个阶段:parse -> transform -> generate。
以上内容摘自《大促背后的前端核心业务实践》电子书,点击https://developer.aliyun.com/topic/download?id=728可下载完整版。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。