博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lodash,你正在使用的JavaScript库
阅读量:6252 次
发布时间:2019-06-22

本文共 1530 字,大约阅读时间需要 5 分钟。

JavaScript工具库发布了3.5版,成为了中依赖最多的库。它正在摆脱屌丝身份,成为开发者的不二之选。

\\

lodash一开始是库的一个fork,因为和其他(Underscore.js的)贡献者意见相左。的最初目标,是提供更多“一致的跨浏览器行为……,并改善性能”。之后,该项目在现有成功的基础之上取得了更大的成果,并于一月份发布了3.0版本。

\\

与其前任Underscore一样,lodash的名字也是源于所有函数前面的那个字符。就像jQuery在全部函数前加全局的$一样,lodash使用全局的_来提供对工具的快速访问。例如,要对数组的所有元素执行某个行为,我们可以:

\\
_.each([1, 2], function(n) { console.log(n); });
\\

3.0版包含了新增的47个新方法(如_.camelCase_.flattenDeep)在内的许多更改。更重要的是对链式方法进行延迟计算:

\\
var users = [\  { 'user': 'barney',  'age': 36 },\  { 'user': 'fred',    'age': 40 },\  { 'user': 'pebbles', 'age': 1 }\];\\var youngest = _.chain(users)\  .sortBy('age')\  .map(function(chr) {\    return chr.user + ' is ' + chr.age;\  })\  .first()\  .value();\// → 'pebbles is 1'
\\

在InfoQ的一次采访中,Dalton表示在这些方法中使用延迟计算改进了lodash的性能:

\\
\

延迟计算意味着在显示或隐式的value()调用之前不会执行链式方法。由于执行被延后了,因此lodash可以进行shortcut fusion这样的优化,通过合并链式iteratee大大降低迭代的次数。

\
\\

Filip Zawada对于性能的提升。

\\

最初,lodash只是Underscore的一个复制品,但3.0之后,不会再有针对于Underscore的构建。“尽管我们仍然会运行Underscore/Backbone的单元测试,但lodash 3.0将不再支持单独的Underscore/Backbone构建”,Dalton说。

\\
\

在过去的一年中,我们看到Underscore根据lodash的API进行了很多调整,因此为Underscore进行单独构建的需求减少了。如果开发者仍然需要兼容某些边缘情况,建议在使用Underscore的同时,用lodash 3.0版中的模块进行补充。

\
\\

一些主要的npm包都依赖于lodash,如JavaScript转译器、博客平台,和项目脚手架工具。其中Ghost是从Underscore迁移到了lodash。在被InfoQ问及在Ghost中引入lodash时,Ghost的创始人John O'Nolan说到,“这是一个非常明智的选择,它几乎完全是由我们开源开发社区推动的。

\\
\

我们发现lodash包含更多的功能,更好的性能、恰到好处地使用了semver,并且在Node.js社区(以及其他依赖)中越来越抢眼。

\
\\

lodash不但深受node.js开发者欢迎,还广泛应用于基于浏览器的项目中。Web开发者可以使用实验构建工具来挑选项目中需要的方法,而不必下载整个库。对于node.js项目,在不需要整个包的时候,可以只include单个方法。

\\

查看英文原文

转载地址:http://uyfsa.baihongyu.com/

你可能感兴趣的文章
文件下载界面
查看>>
?:,reverse,vector的基本小结
查看>>
1.2 最基本的数据库连接
查看>>
bzoj4557
查看>>
C# 实验感悟WPF
查看>>
解决Win7 下小问题
查看>>
day25-3获取指定字符串中,大写字母、小写字母、数字的个数
查看>>
[转载] 百度上传&下载脚本
查看>>
Yii framwork - Url Manager
查看>>
为什么Facebook要将视频从Flash全面迁移到HTML5?
查看>>
poj 1149 PIGS
查看>>
mysql学习笔记--数据库视图
查看>>
SQL server 2005如何设置一个或几个字段唯一约束?
查看>>
典型用户分析
查看>>
java web编程 servlet读取配置文件参数
查看>>
ChartControl实现时间轴实现
查看>>
生成器函数
查看>>
Google(谷歌)中国工程研究院 工程师 方坤 对学生朋友的一些建议
查看>>
oracle 优化——索引与组合索引
查看>>
android基础—尺寸单位和屏幕适配
查看>>