From 73c890fc7b920c3277cea547f576e55ca5dc61b8 Mon Sep 17 00:00:00 2001 From: w2xi <43wangxi@gmail.com> Date: Mon, 29 Jan 2024 20:53:37 +0800 Subject: [PATCH] chore: adjust --- public/template-to-render.excalidraw.png | Bin 33599 -> 33298 bytes slides.md | 46 +++++++++++++++++++++-- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/public/template-to-render.excalidraw.png b/public/template-to-render.excalidraw.png index 50279b2bc86e581f82973943970f3376177f8e82..5578f83c34d5485ac70e73821091c64cf7c5bce7 100644 GIT binary patch literal 33298 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 COW#tL^4> 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 在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。 + +由上定义可知: + ++ AST 是一个树状结构 ++ AST 表示源代码的语法结构 + +关于 AST,可以看看 [AST Explorer](https://astexplorer.net/) + +那 AST 有什么用呢? + +--- + +在前端领域,AST 其实应用广泛,比如: + ++ babel: 典型的转译器,也是根据源代码的 AST 转换成其他代码的 AST,再生成目标代码,如 ES6 转 ES5 ++ jsx: 大名鼎鼎的 jsx 语法其实也是需要编译的,并且最终编译完也是很多的 `render` 函数 ++ ESlint: ESlint 也需要对源代码的 AST 进行解析处理,分析是否符合规则 ++ TypeScript: 天天都在用的 ts 也是需要编译的,由 ts 编译成 js ++ V8: Chrome 的 V8 引擎能直接执行 js,想都不用想,肯定需要编译 ++ 语法高亮: 每天都看着五颜六色的代码,也是通过编译实现的 ++ 代码提示: 同上 ++ 错误检验: 同上 ++ ... + +更多参考: + +- [https://juejin.cn/post/7031908854388490248](https://juejin.cn/post/7031908854388490248) +- [https://juejin.cn/post/6844904035271573511](https://juejin.cn/post/6844904035271573511) + +--- + +了解了什么是 AST 后,我们再来看看 Vue 模板对应的 AST 长什么样子。 假设有如下模板: @@ -1252,7 +1290,7 @@ const render = new Function(code) // 渲染函数 const template = `
Hello
` ``` -经过解析之后,它对应的 AST 结构如下: +经过解析之后,它对应的 AST 结构如下表示: ```js const ast = {