一尘不染

Lodash 和 Underscore.js 之间的区别

javascript

为什么有人更喜欢Lodash或Underscore.js实用程序库?

Lodash 似乎是下划线的替代品,后者的使用时间更长。

我认为两者都很出色,但我对它们如何进行有根据的比较知之甚少,我想了解更多关于差异的信息。


阅读 143

收藏
2022-02-18

共1个答案

一尘不染

arguments我创建 Lodash 是为了为数组、字符串、对象和对象1提供更一致的跨环境迭代支持。它已经成为 Underscore.js 的超集,提供更一致的 API 行为、更多功能(如 AMD 支持、深度克隆和深度合并)、更全面的文档和单元测试(在Node.jsRingoJSRhino中运行的测试) 、NarwhalPhantomJS和浏览器),更好的整体性能和大型数组/对象迭代的优化,以及自定义构建和模板预编译实用程序的更大灵活性。

由于 Lodash 比 Underscore.js 更新更频繁,因此提供lodash underscore了一个构建以确保与 Underscore.js 的最新稳定版本兼容。

有一次,我什至获得了对 Underscore.js 的推送访问权限,部分原因是 Lodash 负责提出 30 多个问题;在 Underscore.js v1.4.x+ 中登陆错误修复、新功能和性能提升。

此外,至少有三个Backbone.js样板默认包含 Lodash,并且 Lodash 现在在 Backbone.js 的官方文档中被提及。

查看 Kit Cambridge 的帖子,向 Lo-Dash 说“Hello”,以更深入地了解 Lodash 和 Underscore.js 之间的差异。

脚注:

  1. Underscore.js 对数组、字符串、对象和arguments对象的支持不一致。在较新的浏览器中,Underscore.js 方法忽略数组中的漏洞,“对象”方法迭代arguments对象,字符串被视为类似数组,方法正确地迭代函数(忽略它们的“原型”属性)和对象(迭代阴影属性,如“toString ” 和 “valueOf”),而在旧版浏览器中则不会。此外,Underscore.js 方法,如_.clone,保留数组中的孔,而其他方法_.flatten则不保留。
2022-02-18