babel代码编译流程介绍(一)

前言

babel在我们工作中必不可少,但是很多情况下项目都继承了,大部分同学进知道简单的配置,其中的一些代码编译流程及原理,ast源码树等不是很清楚,本文是haorooms前端博客babel代码编译流程系列课程,本套课程主要记录ast源码解析,babel编译流程,babel应用及插件书写等等。

babel中的ast

babel 编译的第一步是把源码 parse 成抽象语法树 AST (Abstract Syntax Tree),后续对这个 AST 进行转换。(之所以叫抽象语法树是因为省略掉了源码中的分隔符、注释等内容)

js异步操作中的串行和并行

前言

本文写一下js中es5和es6针对异步函数,串行执行和并行执行的方案。以及串行和并行结合使用的例子。

es5方式

在es6出来之前,社区nodejs中针对回调地狱,已经有了promise方案。假如多个异步函数,执行循序怎么安排,如何才能更快的执行完所有异步函数,再执行下一步呢?这里就出现了js的串行执行和并行执行问题。

异步函数串行执行

【日常】mac电脑移动硬盘未退出拔掉,导致再次插入无法识别,问题解决

前言

我的mac笔记本容量比较小,经常用移动硬盘,但是不小心移动硬盘没有安全退出,导致mac电脑移动硬盘再次插入无法识别,这个问题很痛苦。一开始我用window硬盘修复工具修复一下,插到mac里面奇迹会好,但是随着硬盘东西增多,这个方法后来不起作用了。如何解决呢?下面记录一下。

恢复步骤

一、首先插入自己的硬盘,然后找到mac的磁盘工具

js洋葱模型的实现

前言

洋葱模型指的是方法的执行像洋葱一样,一层一层往里执行,直到中心点后,再一层一层往外出来。

如下图: enter image description here

粘贴图片生成base64或者blob临时地址

前言

之前文章有介绍blob,以及base64和blob的互转,今天这篇文章是上面这些文章的补充吧,主要介绍通过截图或者粘贴图片,直接生成base64的地址或者blob的临时地址,假如要上传服务端,可以通过之前介绍的互转等方式直接传给服务端。

demo案例

下面介绍一下这个demo案例