201811-09 学习函数式编程1 247 VIEW [crayon-5df2e80c3ef34787404695/] 参考文章 functional-programming-in-js-with-practical-examples-part-1 .... Read More >
201807-08 Hello, Spirit Man 214 VIEW 应该是上初四的时候,在纸上画好点阵图,用nc3000 + basic 写过一个画出图像的小程序,但那时并不知道怎么做动画,而且也没有人教,自学能力又差,后来就顾着玩《英雄坛说》了。终于14年过去了,现在可算能写出一个会动的了,感谢 Medium 的教程 和 OpenGameArt,完全没有空间坐标和.... Read More >
201805-05 应该把 moment.js 换成 day.js 吗? 1084 VIEW TL;DR 如果在Safari中你使用 dayjs("2018-10-10 00:00:01") 这种非 ISO 8601 的时间格式,会得到一个 Invalid Date,而 moment 可以正常处理 WTF is Going On 我们有一个项目中使用了 moment ,因为 moment 比较大,想通过一些方法减小压缩包,我建议前端开发使用去除 moment 的 loc.... Read More >
201707-01 curry与pipe 374 VIEW 之前看ryf老师介绍ramda,知道了pipe这个东西,然后又看到了一个用 arrow function 来写 closure 的文章,想尝试再理解一下curry与pipe, 发现确实只有在容易写成一大段 spaghetti 运算代码时才有用 ?顺便 囗-囗 一个 ,excited [crayon-5df2e80c41452736557362/] .... Read More >
201705-21 用JS实现一个简单的中文编译器 471 VIEW [crayon-5df2e80c41ae2525829798/] 只是想用中文来演示编程的基本语法,用了 ES6 的模板字符串,eval 和 一个加括号的函数来实现.... Read More >
201612-22 手写一个Promise 551 VIEW [crayon-5df2e80c420a4846679624/] 好了现在终于有点理解 Promise 了 ,但这个还有点问题,应该处理 resolveFunc 与 rejectFunc 的返回值,再判断是不是promise,然后接着执行 then 方法.... Read More >
201606-03 间隔一秒调用一次的JS 533 VIEW 这种相当常见的闭包 [crayon-5df2e80c426ec579114910/] 下面是ES6的语法 新的 setTimeout 可以传入参数了 [crayon-5df2e80c426f8180883793/] 在MDN上看API时突然发现这个 Array.from方法可是个好东西 [crayon-5df2e80c42700823315539/] 那天看忍者书,真是被Resig的.... Read More >
201509-22 Tail Call Opimization——YDKJS 572 VIEW 据说ES6有一个尾部调用优化,如果JS引擎支持TCO那么,当定义一个函数时,如果return后面直接跟一个函数调用,那么这个函数将不会新建一个调用栈,而是重用已有的栈,达到节约内存的目的,这个TCO的最好用例就是递归 例如下面两种递归的写法 [crayon-5df2e80c42d41639787000/] 其中第一个函数fac1里面,return后面没有直接跟函数,而是用n*fac1(n.... Read More >
201509-16 我对JavaScript原型链的理解——从new说起 419 VIEW 习惯面向类编程的人都知道,从一个构造函数(抽象类)实例化一个子类或实例时应该用 new 这个操作符; 我们通常所说的面向对象是什么,JavaScript是面向对象的语言, ECMA 定义的对象指的就是一些无序键值对的集合; 有人说 JavaScript 所有的东西都是对象,其实并不是这样,JavaScript中有5种简单值(string,number,boolean,undefined.... Read More >