首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
抽象语法树
订阅
Harhao
更多收藏集
微信扫码分享
微信
新浪微博
QQ
38篇文章 · 0订阅
高级前端基础-JavaScript抽象语法树AST
Babel为当前最流行的代码JavaScript编译器了,其使用的JavaScript解析器为babel-parser,最初是从Acorn 项目fork出来的。Acorn 非常快,易于使用,并且针对非标准特性(以及那些未来的标准特性) 设计了一个基于插件的架构。本文主要介绍es…
《从 0 到 1 手写 babel》思路分享
babel 是怎么实现的,编译流程是什么,内部有哪些包,如何从 0 到 1 写一个简易 babel,这篇文章帮你理清思路
用JavaScript实现一门编程语言 3-1 (解析器之抽象语法树)
正如前面提到的,解析器会建立一个结构来表示程序的语义。AST节点是一个普通的JavaScript对象,它有一个类型属性,指定它是什么类型的节点,以及根据特定类型指定的附加信息。 { type: "lambda", vars: [ NAME... ], body: AST } {…
13 个示例快速入门 JS 抽象语法树
Javascript 代码的解析(Parse )步骤分为两个阶段:词法分析(Lexical Analysis)和 语法分析(Syntactic Analysis)。这个步骤接收代码并输出 抽象语法树,亦称 AST。 随着 Babel 的生态越来越完善,我们通常会使用 Babel…
从 0 到 1 实现一款简易版 Webpack
输出完成:在确定好输出内容后,根据配置确定输出的路径和文件名,把文件内容写入到文件系统。 在以上过程中,Webpack 会在特定的时间点广播出特定的事件,插件在监听到感兴趣的事件后会执行特定的逻辑,并且插件可以调用 Webpack 提供的 API 改变 Webpack 的运行结…
构建一个使用 Virtual-DOM 的前端模版引擎
本文尝试构建一个 Web 前端模板引擎,并且把这个引擎和 Virtual-DOM 进行结合。把传统模板引擎编译成 HTML 字符串的方式改进为编译成 Virtual-DOM 的 render 函数,可以有效地结合模板引擎的便利性和 Virtual-DOM 的性能。类似 ReactJS 中的 JSX。
用 JavaScript 写一个超小型编译器
前几天看到 Github 上一个非常好的编译器 Demo: https://github.com/thejameskyle/the-super-tiny-compiler 虽然是一个很小很小的并没有什么卵用的编译器,但可以向我们展示编译器的很多东西。 昨天和今天有空,把它翻译了出来,如果可以的话,建议直接去这里看代码,Github 上的阅读体验更好
从零开始编写一个babel插件
我们编写的babel插件是所属于babel-loader,而babel-loader基本运行与webpack环境.所以为了检测babel插件的是否起作用,我们必须构建webpack环境. babel-traverse对AST树进行解析遍历出整个树的path. plugin转换出…
抽象语法树在 JavaScript 中的应用
在计算机科学中,抽象语法树(abstract syntax tree 或者缩写为 AST),或者语法树(syntax tree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。之所以说语法是「抽象」的,是因为这里的语法并不会表示出真实语法中出现的每个细节。1
babel原理及插件开发
如今的前端界已经离不开ES6,然而老旧浏览器并不支持,项目中特别是国内公司又需要兼容低版本的老旧浏览器,多亏了babel这个神奇的工具,可以让我们的ES6代码运行在旧浏览器中。 大部分前端开发人员只是配置一下babel,根据需要装个插件之类,我想肯定少有人去研究babel转换E…