Nieyt's Blog

Nieyt's Blog

Nobody exists on purpose. Nobody belongs anywhere. Everybody's gonna die. Come watch TV?

AST入门:原理浅析及实践

什么是AST?

在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。

js函数柯里化的使用场景及实现

什么是函数柯里化?

curry 的概念很简单:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数。你可以一次性地调用 curry 函数,也可以每次只传一个参数分多次调用。

移动端键盘弹起时界面变窄

相信大家都遇到过键盘弹起时页面高度变窄的情况,但元素宽度变窄,是不是闻所未闻?所以遇到问题时排查了很久,一直以为是兼容性问题(因为只在部分手机上出现),网上都没有搜到类似情况,却在某一刻突然恍然大悟……

egret MovieClip怎样在某一帧停止播放

MovieClip对象的方法中,并没有提供这样的api,但我们可以通过为动画的某一帧添加事件,再在代码中监听该事件,调用停止方法即可。具体如下——

将帧序列雪碧图数据转化为egret MovieClip可应用的动画数据

我们知道Egret工具集中的Texture Merger,可将零散纹理拼合为整图,同时也可以解析SWF、GIF动画,导出可供Egret使用的配置文件。但是,在项目应用中,我们遇到了一些问题。由于设计师提供的gif图无法去除锯齿或白边,要想有比较完美的画质,只能提供动图的每一帧的png序列。虽然Texture Merger并没有将静态序列图转换为MovieClip可应用的动画文件的配置项,但我们可以先将png图片合成为雪碧图,通过观察动画数据的配置规则,我们可将雪碧图的json配置文件转化为动画数据配置文件。

异步编程,如何避免回调地狱

在js编程中,很容易遇到异步的情况。比如前端的发送ajax请求、定时器,后端nodejs的数据库读取,文件读取等。传统的异步编程方式,都是基于回调函数的。但由于回调函数嵌套过多,会造成代码复杂难以维护,且难以捕捉到代码异常,于是,新版本的ECMAScript针对这一情况有了改进。

addEventListener的第三个参数

之前一直忽略了addEventListener的第三个参数,因为一般情况下不写它并不会造成什么后果。但是,既然知道它有第三个参数,就想弄明白它是干嘛的。

avatar
nieyt
witness me
FRIENDS