首页 > JavaScript > 在 JavaScript 中Lodash 和 Underscore.js 之间的差异

在 JavaScript 中Lodash 和 Underscore.js 之间的差异

上一篇 下一篇

社区在 4 个月前审查了是否重新打开此问题并将其关闭:

未解决原始关闭原因

分割线

网友回答:

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

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

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

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

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

脚注:

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

分割线

网友回答:

Lodash的灵感来自Underscore.js,但现在它是一个卓越的解决方案。您可以进行定制构建,具有更高的性能,支持AMD并具有出色的额外功能。检查这个 洛达什 vs. 下划线.js jsperf 上的基准测试和…这篇关于洛达什的精彩帖子:

当您使用集合时,最有用的功能之一是速记语法:
(尽管 Underscore 现在也支持此语法)

var characters = [
  { 'name': 'barney', 'age': 36, 'blocked': false },
  { 'name': 'fred',   'age': 40, 'blocked': true }
];

// Using "_.filter" callback shorthand
_.filter(characters, { 'age': 36 });

// Using Underscore.js
_.filter(characters, character => character.age === 36);

// → [{ 'name': 'barney', 'age': 36, 'blocked': false }]

(摘自 Lodash 文档)

分割线

网友回答:

如果像我一样,您期望 Underscore.js 和 Lodash 之间的使用差异列表,那么有一个从 Underscore.js 迁移到 Lodash 的指南。

这是后人对它的当前状态:

  • 下划线是洛达什_.any_.some
  • 下划线是洛达什_.all_.every
  • 下划线是洛达什_.compose_.flowRight
  • 下划线是洛达什_.contains_.includes
  • 下划线不允许通过返回退出_.eachfalse
  • 下划线是洛达什_.findWhere_.find
  • 默认情况下,下划线较深,而 Lodash 较浅_.flatten
  • 下划线支持传递参数的迭代,而在 Lodash 中,
    迭代只传递一个参数:。
    _.groupBy(value, index, originalArray)_.groupBy(value)
  • 下划线.js第三个参数是 Lodash_.indexOfundefined_.indexOf
  • 下划线.js第三个参数是 Lodash_.indexOftrue_.sortedIndexOf
  • 下划线是洛达什_.indexBy_.keyBy
  • 下划线是洛达什_.invoke_.invokeMap
  • 下划线是洛达什_.mapObject_.mapValues
  • 下划线组合洛达什_.max_.max & _.maxBy
  • 下划线组合洛达什_.min_.min & _.minBy
  • 下划线组合洛达什_.sample_.sample & _.sampleSize
  • 下划线结合了洛达什和_.object_.fromPairs_.zipObject
  • 谓词下划线是 Lodash_.omit_.omitBy
  • 下划线是洛达什_.pairs_.toPairs
  • 谓词下划线是 Lodash_.pick_.pickBy
  • 下划线是洛达什_.pluck_.map
  • 下划线组合洛达什_.sortedIndex_.sortedIndex & _.sortedIndexOf
  • 下划线由 是 洛达什_.uniqiteratee_.uniqBy
  • 下划线是洛达什_.where_.filter
  • 下划线与
    (例如 在下划线中返回.js,但在洛达什)
    _.isFiniteNumber.isFinite_.isFinite('1')truefalse
  • 下划线速记不支持深度比较
    (例如,
    _.matches_.filter(objects, { 'a': { 'b': 'c' } }))
  • 下划线 ≥ 1.7 和 Lodash 语法是_.template
    _.template(string, option)(data)
  • 洛达什缓存就像对象_.memoizeMap
  • Lodash不支持许多方法的论点,以支持context_.bind
  • Lodash 支持隐式链接、惰性链接和快捷方式融合
  • Lodash 将其重载 、、 和 拆分为
    、、 和
    (即 在下划线中.js在洛达什中)
    _.head_.last_.rest_.initial_.take_.takeRight_.drop_.dropRight_.head(array, 2)_.take(array, 2)

模板简介:该模板名称为【在 JavaScript 中Lodash 和 Underscore.js 之间的差异】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 293次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-19
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
企业网站 单页式简历模板 微信模板 自适应 微信文章 微信图片 html5 微信素材 响应式 微信公众平台
您可能会喜欢的其他模板