SF
我的前端学习
我的前端学习
注册登录
关注博客
注册登录
主页
关于
RSS
javascript parser generator选型
黑色的影子
2020-12-20
阅读 1 分钟
1.9k
以下图是javascript parser generator的选型,希望能给有需要的同学参考:
如何用javascript(typescript)写一个解析组合子库(parser combinator)
黑色的影子
2020-12-12
阅读 11 分钟
4.2k
作为前端开发人员,我们的生态圈早已充斥着各种parser工具,通过本篇文章,希望你能学习到parser combinator的实现原理,更加了解函数式编程。在有必要的时候,轻松地通过parser combinator实现自己的parser。本篇文章在实现parser combinator库后,在末尾会通过使用这个库来实现一个json parser。
语言解析之回溯法和记忆法
黑色的影子
2020-12-12
阅读 2 分钟
2.6k
语法规则越复杂,就越需要灵活地向前看k个字符,回溯法与LL(k)相比,相当于任意多的向前看符号。能满足更多的场景和需求,但回溯法有一个最大的问题是性能相对较差,所谓的记忆法就是在回溯法的基础上,对于已经计算过的结果进行缓存,以降低回溯法的时间复杂度。
算符优先算法
黑色的影子
2020-12-12
阅读 4 分钟
2.2k
通常,操作符的优先级越高,位置就越低。例如在3+45这个表达式中,*的优先级高于+,那么就是+节点的子节点。但如果3+4添加了(),即:(3+4)*5,两个符号的优先级就颠倒回来。
帮你读懂preact源码(三)
黑色的影子
2018-05-20
阅读 3 分钟
2.7k
在preact中,回收调用了两个方法,dom节点的回收一般会调用recollectNodeTree,组件的回收会调用unmountComponent。
帮你读懂preact源码(二)
黑色的影子
2018-05-20
阅读 6 分钟
2.2k
上篇文章已经介绍过idff的处理逻辑主要分为三块,处理textNode,element及component,但具体怎么处理component还没有详细介绍,接下来讲一下preact是如何处理component的。
帮你读懂preact的源码(一)
黑色的影子
2018-05-20
阅读 5 分钟
3.7k
作为一名前端,我们需要深入学习react的运行机制,但是react源码量已经相当庞大,从学习的角度,性价比不高,所以学习一个react mini库是一个深入学习react的一个不错的方法。
axios源码阅读
黑色的影子
2018-05-20
阅读 4 分钟
3.9k
接下来我们看一下request方法,所有http请求的发送都会调用Axios.prototype.request,这个函数可以认为是整个axios的骨架,非常重要。
十几行代码教你实现一个最简版的promise
黑色的影子
2017-06-16
阅读 4 分钟
6.2k
最近研究了一下promise的实现,这篇文章使用了十几行代码实现了一个简单的promise;以便帮助读者对promise'有更深的了解。本篇文章实现的promise,遵循规范是 Promises/A+。
flip你的动画
黑色的影子
2017-03-31
阅读 2 分钟
8.8k
在vue官方文档上看到vue使用flip做动画,就去研究了一下。这是一个准则,协调js和css对动画的操作。如果你看到我的前一篇文章一篇文章说清浏览器解析和CSS(GPU)动画优化,理解本篇文章还是很简单的。
一篇文章说清浏览器解析和CSS(GPU)动画优化
黑色的影子
2017-01-05
阅读 7 分钟
26k
相信不少人在做移动端动画的时候遇到了卡顿的问题,这篇文章尝试从浏览器渲染的角度;一点一点告诉你动画优化的原理及其技巧,作为你工作中优化动画的参考。文末有优化技巧的总结。
仿照锤子科技官网的banner 3d效果
黑色的影子
2016-12-05
阅读 2 分钟
6.4k
以前看到锤子科技官网的banner效果挺好玩的,一直没有研究;今天看到饥人谷,使用jquery给出了一种实现方式;我自己用原生js也实现了一遍。大致原理相同,但算法不同。
css实现垂直居中的几种方式
黑色的影子
2016-11-24
阅读 2 分钟
2.3k
1.单行文本使用line-height {代码...} 2.使用table-cell+vertical-align {代码...} 3.父元素、子元素高度确定高度确定position+margin {代码...} 4.父元素、子元素高度不确定 {代码...} 5.额外元素+margin,与上两个原理一样;多设置了一个额外元素,使额外元素的height为50%,margin-bottom为center元素的高度的负一半-(h...