一尘不染

lodash和下划线之间的区别

javascript

已关闭 。这个问题是基于观点的。它当前不接受答案。


想改善这个问题吗? 更新问题,以便通过编辑此帖子以事实和引用的形式回答。

去年关闭。

为什么有人会比其他人更喜欢lodash.jsunderscore.js实用程序库?

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

我认为两者都很出色,但是我对它们的工作方式还不甚了解,无法进行有根据的比较,我想进一步了解它们之间的差异。


阅读 442

收藏
2020-04-25

共1个答案

一尘不染

我创建Lo-Dash的目的是为数组,字符串,对象和arguments对象1提供更一致的跨环境迭代支持。此后,它已成为Underscore的超集,提供更一致的API行为,更多功能(如AMD支持,深度克隆和深度合并),更全面的文档和单元测试(在Node,Ringo,Rhino,Narwhal,PhantomJS中运行的测试)和浏览器),从而为大型阵列/对象迭代提供更好的整体性能和优化,并通过自定义版本和模板预编译实用程序提供更大的灵活性。

由于Lo-Dash的更新频率比Underscore更新的频率高,因此提供了一个lodash underscore构建以确保与最新稳定版本的Underscore兼容。

有一次我什至获得了送到Underscore的权限,部分原因是Lo-
Dash负责提出30多个问题。Underscore v1.4.x +中的着陆错误修复,新功能和性能提升。

此外,至少有3个Backbone样板默认包含Lo-
Dash,而Backbone的官方文档中现在提到了Lo-Dash 。

查看Kit Cambridge的帖子,向Lo-Dash说“你好”,以深入了解Lo-Dash和Underscore之间的区别。

脚注:

  1. 下划线对数组,字符串,对象和arguments对象的支持不一致。在较新的浏览器中,Underscore方法将忽略数组中的孔,“ Objects”方法将迭代arguments对象,将字符串视为类似于数组的方法,并且方法将正确地迭代函数(忽略其“ prototype”属性)和对象(迭代阴影的属性,例如“toString”和“valueOf”),而在较旧的浏览器中则不会。同样,下划线方法(例如)_.clone保留数组中的孔,而其他方法_.flatten则不保留。
2020-04-25