Lodash:JavaScript 开发者离不开的工具库

正文顶部截图

Lodash 是一个 JavaScript 工具库,目前在 GitHub 上获得了 61,229 个 Star。

在前端和 Node.js 项目中,数组去重、对象深拷贝、字符串模板处理这些操作每天都要写。原生实现不仅代码量大,还要处理各种边界情况。Lodash 的做法是把这些操作封装成经过大量测试的函数,开发者直接调用就行。

README区域截图

核心能力

Lodash 的方法覆盖三类场景:

  • 遍历数组、对象和字符串
  • 值的操纵与测试
  • 组合函数的创建

举几个常用的例子。.debounce 用于函数防抖,输入框搜索建议场景几乎必用。.get 安全地读取嵌套对象属性,不用担心中间某一层是 null 就报错。.cloneDeep 做深拷贝,原生实现需要递归处理循环引用和特殊类型,Lodash 一行搞定。.merge 合并两个对象,会递归合并嵌套属性而不是简单覆盖。

安装与使用

浏览器直接引入脚本:

<script src="lodash.js"></script>

通过 npm 安装:

npm i --save lodash

Node.js 中按需加载:

// 加载完整版
var _ = require('lodash');
// 加载精简版
var _ = require('lodash/core');
// 加载 FP 版本
var fp = require('lodash/fp');

Lodash 按方法分类提供了独立模块,比如 lodash/array、lodash/collection、lodash/math 等,可以只引入需要的分类。

FP 版本适合函数式编程风格,方法自动柯里化,参数顺序调整为迭代器在前、数据在后,配合管道使用更顺手。

构建版本与模块格式

Lodash 提供两种构建版本:

  • Core build:约 4 kB(gzip 后),包含常用方法集合
  • Full build:约 24 kB(gzip 后),包含全部 300 多个方法

如果项目只需要部分方法,可以选择 core 版本减小体积。也可以通过 cherry-pick 方式只引入单个方法,配合 webpack 或 rollup 的 tree shaking 进一步优化。

模块格式方面,除常规 UMD 格式外,还提供 ES Module 版本(lodash-es)、AMD 格式(lodash-amd),以及配合构建工具使用的 babel-plugin-lodash 和 lodash-webpack-plugin。

治理动态

Lodash 近期获得了 Sovereign Tech Agency 的支持,将过渡到 Feature Complete 成熟度阶段,保持长期稳定和安全。项目正在重建治理结构,新的技术指导委员会(TSC)已经开始运作。对于一个十年前开始的项目来说,获得公共资金支持意味着它不会因为维护者精力不足而被弃置。

许可证

MIT 许可证,可自由用于商业项目。

Lodash 从 2012 年发展至今,经过大量项目的生产环境验证。npm 周下载量长期保持在数千万级别。对于需要频繁操作数组和对象的 JavaScript 项目,它是目前最可靠的选择之一。

的生产环境验证。npm 周下载量长期保持在数千万级别。对于需要频繁操作数组和对象的 JavaScript 项目,它是目前最可靠的选择之一。

更多推荐