- 环境环境依赖于 node v10.0 以上
- 项目安装
npm install // 安装依赖
npm run build // 项目打包
npm run test // 运行测试用例
turtle-rock 是前端 Javascript 一些小程序和算法的的集合,方便理解 JS 里的一些语言特性,和异步。
作为一个FE,不要排斥算法,不要自己把自己的要求降低,对于基础算法的自己不要放低要求自己,其实对于一些基础算法,也不是非常难。只要像turtle一样,不停的努力就可以了!
- 实现 function 的 bind
- 实现 function 的 call
- 实现 function 的 apply
- 实现 instanceOf
- 实现一个 new 函数
- 实现一个继承
- 实现一个 JSON.parse
- 实现一个 JSON.stringify
- 实现一个 promise
- 格式化数组数字
- 用 ES5 实现一个 ES6 的 class
- debounce (防抖)
- throttle (节流)
- deepclone(实现一个深度克隆)
- memolize (返回一个可存储函数执行结果的函数)
- promisy(将一个函数转化为 promise 的使用)
- currying (函数式编程柯里化)
- retry (重试发一个 ajax,失败的时候会自动重试)
- 用 XMLHttpRequest 实现一个 promise 的 ajax
- 实现一个 sleep 函数
- series 流程控制,顺序执行两个 callback
- scheduleTask(实现一个同时执行若干个任务的调度任务器)
- lazyMan Promise 版本 (微信经典面试题 lazyman)
- lazyMan 普通 版本 (微信经典面试题 lazyman)
- eventBus (实现一个事件系统的 on 监听函数和 emit 发送事件的函数)
- parallel 并行执行两个 callback
- waterfall 串行执行有参数传递
- 实现 JSONP
- 实现双向绑定
- 获取所有 dom 的元素节点
- template 替换方法
下面按照 leetcode 的题顺序来列举算法
-
求一个集合的子集
-
LRUCache
-
数据流里求中位数
-
搜索旋转排序数组
-
二叉搜索树转链表
-
三数之和
-
合并 K 个排序链表