Lodash-功能性JavaScript库 Go变成了七岁时的注意力 NetBeans 7.3发行候选版 平板电脑吸引用户远离台式机和笔记本电脑 LoveLetters赢得托尼销售奖 新的汉语普通话改善了版本控制 为了庆祝艾伦·图灵 Pharo 6.0移至64位 NativeScript-统治一切? 伊万·萨瑟兰(Ivan Sutherland)荣获京都奖 TypeScript 1.8 Hits Beta 可穿戴的Android-WIMM One Xamarin现在免费-这会改变一切还是什么? 图灵的纸牌信件将被拍卖 Arduino正式发布-1.0版 p5.j​​s将处理引入网络 JavaFX在Raspberry Pi上运行 jQuery仍然是我们最喜欢的框架 坑-F#到JavaScript编译器 Java 9的拟议时间表 Java ME 8随Raspberry Pi大量发布 图灵年:传承的遗产 芯片上的太赫兹传感器提供X射线视觉 禅光子花园 为Alan Turing的Universal Machine投票 适用于本机应用程序的JavaScript JDK 9更新 io.js加入Node.js基金会 Raspberry Pi获取HAT触摸屏 AngularJS 2.0截然不同 Nodyn-JVM上的Node.js 新的Nao机器人和1500万美元的投资 一个委员会来监督Java? 邀请获得免费软件奖提名 Apple 1打破在线拍卖纪录 D从GCC获得动力 赞助巨像 原型1.7.1发布 Microsoft支持asm.js JavaScript.com推出 Anders Hejlsberg-现代方式的编译器构建 JavaScript中的Task.js异步任务 EDSAC显示屏正式开放 道格拉斯·恩格尔巴特(Douglas Engelbart),老鼠的发明者去世 计算机历史博物馆宣布2015年研究员 CoffeeScript 1.9发布 ModKit Micro-硬件的可视化编程 苹果标志性技术在线拍卖 口头表达比常规表达更容易 新巨像画廊
您的位置:首页 >数据库 >

Lodash-功能性JavaScript库

Lodash最初是流行的Underscore.js库的分支,但自那时以来,它已成为其超集,添加了新功能并表现得更好。版本3.4.0最近已发布。

由于需要更好,更敏捷的模块化,它已应运而生,从而弥补了jQuery之类的大型库留下的空白。JQuery是一个庞大的库,因此很难利用各个功能,需要加载整个库才能获得所需的少量功能。

当然,您可以获取定制的库或购买插件,但实际上却被证明是无效的。另一方面,Lodash通过将其功能分成独立的模块(可从npm中获得)提供了更好的模块化,尽管(最小化的)完整库的大小仅为19K。

与Jquery一样,Lodash也提供自定义构建,并且在需要更细粒度的控制的情况下,它还为您提供了一种选择,即可以利用import pragma来导入所需的功能:

从“ lodash / fp”导入{add};

模块化是一回事,另一方面是更清洁,功能更强大的语法,使您可以编写更简洁的代码。例如,要以Lodash的功能样式遍历数组,请比较:

_.each([1,2,3],function(value,index){console.log(value);}); //输出:1 2 3

反对原生JavaScript面向对象的样式:

[1、2、3] .forEach(function(value,index){console.log(value);}); //输出:1 2 3

尽管语法更简洁,但人们仍表示担心,最好是使用本机函数来减少对外部库的依赖并最大程度地提高跨浏览器的可移植性。事实上,一个GitHub存储库您不需要(可能不需要)Lodash / Undercore提供Lodash函数与其本机对应函数的并排比较,就像上面的_.each vs forEach示例

然而,对此的回应是,在某些情况下,Lodash的功能提供了其他功能和优化,从而显着提高了性能。有关Lodash / Underscore的信息,您可以(您可能不知道)找到很好的概述和并行基准。

在这里,我们发现Lodash的_.each函数比其本地forEach性能高出89%,因为前者具有微优化功能,因为该例程可以通过显式返回false来退出迭代!

//下划线/Lodash_.each([1,2,3],function(value,index){console.log(value); return false;}); //输出:1 // Native [1、2、3] .forEach(function(value,index){return false; //不退出迭代!}); //输出:1 2 3

在另一个示例_.map与.map中,我们指出了其他功能:

 本机不支持_.property iteratee速记。//下划线/ Lodashvar用户= [{“用户”:“ barney”},{“用户”:“ fred”}]; var arr = _.map(users,“ user”); console.log(arr); //输出:[“ barney”,“ fred”] // Nativevar用户= [{“用户”:“ barney”},{“用户”:“ fred”}]; var arr = users.map(“ user”); //错误!

如果这还不足以说服您熟悉图书馆,那么Lodash的作者John-David Dalton就证明了这一点

“如果您只是在阵列上使用了少数方法,并且不关心虚空的防护措施,对象迭代,解决enviro / ES5 / ES6问题,FP好东西,iteratee速记,惰性评估或其他增强功能,然后内置是要走的路”。

例如,在部分应用函数的情况下,Lodash提供了_.partial和_.partialright方法,这些方法使该任务比JavaScript等效方法更加容易和自然。

除此之外,Loadash的简单模板引擎获得了很多赞誉,因为它允许使用完整的JavaScript功能和语法来编写模板;这里没有DSL。编译后的模板将转换为JavaScript函数,该函数最终在客户端中执行以生成最终的HTML

最后,在公众场合讨论不多的另一个功能是使用其_.escape函数来清理用户提供的输入,从而避免了XSS注入。它是如此有用,因此通常作为独立模块使用。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。