0.1.0 • Published 1 year ago

@js-rocks/lodash-tiny v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

@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