0.1.0 • Published 1 year ago
@js-rocks/lodash-tiny v0.1.0
@js-rocks/lodash-tiny 工具函数库
由于 JS 没有官方的 SDK,需要由社区提供一套作为补充,如 underscore,lodash, moment.js 等, 当我们不想因为要使用某个方法而引入完整的库的时候,我们需要自己去实现.
安装使用
安装
yarn add @js-rocks/lodash-tiny
使用
import { isObject } from '@js-rocks/lodash-tiny';
字符串扩展
- startWith, endWith, contains(includes), padStart, padEnd(fillZero)
- trim, trimStart, trimEnd, repeat, camelize, capitalize, dasherize, underscored
数组扩展
- contains, removeAt,remove,flatten,unique,compact,pluck,
- max, min, groupBy,sortBy,union,intersect,diff
继承与类
- ⭐ 实现 ES6 的 class
- 实现一个 new 函数
- 实现 instanceOf
日期扩展
传入一个日期
- 求当前月份的天数 getDaysInMonth
- 判断所在年是否为闰年 isLeapYear
- 判断所在季度的第一天 getFirstDateInQuarter
- 判断所在季度的最后一天 getLastDateInQuarter
- 判断所在月的第一天 getFirstDateInMonth
- 判断所在月的最后一天 getLastDateInMonth
- 判断与另外日期相隔多少天 getDatePeriod
更多参考: datejs
异步编程
- ⭐ 实现一个 Promise
- 用 setTimeout 实现 setInterval
- 实现一个 sleep 函数
- 不使用 promise,实现 series 流程控制,顺序执行两个 callback
- 不使用 promise, 实现 parallel 并行执行两个 callback
- lazyMan 普通 版本 (微信经典面试题 lazyman)
- 红绿灯问题
- 实现一个任务调度器,参考zone.js, 这里
面向对象与设计模式
- ⭐ eventBus (on, emit, off, once)
- ⭐ 实现一个简易的依赖注入框架
函数式思想
- currying (柯里化)
- 实现 compose(pipe)
- 实现 partial, partialRight
其他
- ⭐ 实现 is-xx 函数(isFunction, isArray)
- ⭐ 实现 function 的 bind, call, apply
- ⭐ deepClone
- ⭐ 实现 debounce(防抖)与 throttle(节流)
- 实现 lodash 的 get 方法
- 实现数组转树
- 实现 JSON.parse 和 JSON.stringify