当浏览器不支持 const 这种语法的时候,我们需要把他换成支持的 var,这个时候,AST 就上场了。
点击上方蓝字,发现更多精彩 导语 最近在迁移司内项目至空安全的过程中,深入研究了Dart的空安全特性。这项特性不仅能让开发者在编译阶段发现代码中存在的空指针异常,也能提升程序的运行效率。下面将从静态分析的角度讲一讲Dart如何对空安全特性进行支持、新旧版本之间的编码差异、如何迁移旧项目至空安全以及整个迁移原理做详细说明。 一、引入空安全 1.1 什么是空安全特性 Dart 语言在版本 2.12 中引入一项叫做空安全的新特性,在空安全版本下,运行时的NPE(NullPointer Exception)异常
Babel是什么?我们为什么要了解它? 1. 什么是babel ? Babel 是一个 JavaScript 编译器。他把最新版的javascript编译成当下可以执行的版本,简言之,利用babel就
AST 是抽象语法树的缩写词,表示编程语言的语句和表达式中生成的 token。有了 AST,解释器或编译器就可以生成机器码或者对一条指令求值。
如果你查看目前任何主流的项目中的 devDependencies,我们不会在生产环境用到,但是它们在开发过程中充当着重要的角色。归纳一下有:javascript转译、代码压缩、css预处理器、elint、pretiier,postcss等。所有的上述工具,不管怎样,都建立在了AST这个巨人的肩膀上,都是 AST 的运用:
如果你有babel相关知识基础建议直接跳过 前置知识 部分,直接前往 "插件编写" 部分。
Eslint 有很多内置的 rule,其中有一个 rule 叫 no-func-assign,是指不能给函数赋值,目的是避免函数被重新赋值导致调用时出错。
本文将带领大家解析babel-plugin-import 实现按需加载的完整流程,解开业界所认可 babel 插件的面纱。
这个文章系列将带大家深入浅出 Babel, 这个系列将分为上下两篇:上篇主要介绍 Babel 的架构和原理,顺便实践一下插件开发的;下篇会介绍 babel-plugin-macros , 利用它来写属于 Javascript 的宏,
访问者模式:表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。所以访问者模式是一种对象行为型模式。
抽象语法树(Abstract Syntax Tree)简称 AST,是源代码的抽象语法结构的树状表现形式。webpack、eslint 等很多工具库的核心都是通过抽象语法书这个概念来实现对代码的检查、分析等操作。今天我为大家分享一下 JavaScript 这类解释型语言的抽象语法树的概念
本系列的几篇源码分析文档意义不大,如果你正好也在研究lint源码,或者你想知道前面自定义lint规则中提出的那几个问题,抑或你只是想大致了解下lint的源码都有些什么内容的话,这些文章可能有还些作用,否则看了和没看差不多的,因为这几篇文章只是我在读源码的过程中记录下来的一些零碎的片段,方便以后看的时候能够迅速上手。
作者:enoyao,腾讯工程师 背景 随着我们项目越来越大,我们有可能需要维护很多的模块,我们腾讯文档 Excel 项目大模块有 10 几个,而每个大模块分别有 N 个小模块,每个大模块下的小模块都有主要的负责人在跟进模块问题。 这就会导致一个很大的问题是,模块负责人大部分情况只会关注自己模块的问题,而不甚了解其他负责人手上模块的具体问题。 比如:当我们有用户反馈使用复制粘贴有问题的时候,我们想要快速去定位这个问题,就只能找复制粘贴对应的模块负责人处理,如果复制粘贴模块负责人请假了,那么其他负责人
我们知道python解析执行的过程大概是这样的: 词法分析 –> 具体语法树 –> 抽象语法树 –> 控制流图 –> 字节码 –> 执行 其中,抽象语法树可以用ast模块建立出来. 首先第一个问
动态化是 Flutter 无法避开的话题。本文从 Flutter 的特点讲起, 阐述了美团外卖团队在整个 Flutter 动态化上探索的心路历程,还有设计理念、核心原理以及业务应用的经验。本文的视角也不局限于框架本身,更多思考了在解决问题的过程中技术团队需要做的事情,希望能对大家有所启发和帮助。
编写babel插件时最常使用的是库 @babel/core 、@babel/types
在很多时候我们项目越来越大的时候,我们希望去监听局部某些类方法的性能,这个时候我们既不想影响源代码的功能,但又想借助某些方案去窥探类方法内部的运行效能,此时我们就可以考虑使用装饰器对类方法性能进行监听。装饰器相信大家都不陌生了,虽然在 Javasript 里面它仍处于提议阶段,但是我们已经可以 TypeScript 里面运用这个特性,也可以借助 babel 的语法转换在 Javasript 里面使用。
在计算机科学中,抽象语法树是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,树上的每个节点都对应为源代码中的一种语法结构。抽象语法树可以说是静态代码分析中最常用的,也是最核心的技术之一,通过抽象语法树可以很方便构建模型,判断源码中是否存在缺陷特征。
领取专属 10元无门槛券
手把手带您无忧上云