当前位置:主页 > 网站优化 >

2018年你需要知道的11个JavaScript库

作者: 奕星SEO 分类: 网站优化 发布时间: 2019-08-16 10:50 内容来源:网络整理阅读量:

2018年你需要知道的11个JavaScript库

译者按: 你可能已经用到Underscore或者Lodash。本文列举了11个常用的库来提高开发效率。

原文:

译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

JavaScript依然是2018年最受欢迎、最流行的编程语言,所以它的生态系统也十分完善。

JavaScript小小的标准库不足以应付各种开发需求。在Github上,有许多流行的JavaScript库。在这里,我整理了一个列表推荐给大家:

1. Underscore & Lodash(dah)

也许大多数童鞋都已经知道它们。Underscore提供了日常使用的基础函数。Lodash, 作为NPM最多下载量和被依赖最多的包,提供了更加支持跨环境一致性的对数组、字符串、对象和参数对象的支持。它已经是Underscore的超集。Underscore和Lodash有同一组核心开发者维护。你日常开发中绝对少不了要用到它。

Lodash

Underscore

2. Ramda

拥有超过12K的stars,Ramda库可以用来在JavaScript中函数式编程,专门为函数式编程风格而设计,更容易创建函数式 pipeline、且从不改变用户已有数据。

摘自官方:

Ramda 主要特性如下:

Ramda 强调更加纯粹的函数式风格。数据不变性和函数无副作用是其核心设计理念。这可以帮助你使用简洁、优雅的代码来完成工作。

Ramda 函数本身都是自动柯里化的。这可以让你在只提供部分参数的情况下,轻松地在已有函数的基础上创建新函数。

Ramda 函数参数的排列顺序更便于柯里化。通常最后提供要操作的数据。

最后两点一起,使得将多个函数构建为简单的函数序列变得非常容易,每个函数对数据进行变换并将结果传递给下一个函数。Ramda 的设计能很好地支持这种风格的编程。

Ramda

你也可以看看:immutable.js

3. MathJS

拥有超过6K的stars,Math.js是一个Node.js和JavaScript的math扩展库,并且和内置的Math库兼容。该库中包含一个灵活的表达式分析器,并且有非常多的内置函数可以使用。你甚至可以自行做扩展。

Math.js

4. Moment/date-fns

拥有超过40K的stars,moment.js是一个JavaScript的时间处理库,可以用来分析、验证、处理和格式化时间。Moment被设计可以用于浏览器和Node.js环境下。对于V2.10.0,代码完全用ECMAScript 6模块实现。

Date-fns也是一个非常流行(超过11K的stars)的时间处理库,提供超过130多个函数,很多人把它当做moment.js()的替代品。Date-fns完全用纯函数实现,并保证不可修改性。它可以很好的和webpack,Browserify、或Rollup配合使用,并支持tree-shaking。

moment

date-fns

5. Sugar

拥有超过3.5K个stars,Sugar是一个可以用来处理原生对象的库。自定义的构建和模块化的npm包,使得你可以只需要加载你需要的包。用户也可以自定义方法或则使用插件处理特殊情况。

Sugar

6. Lazy

拥有5K个stars,lazy.js是一个函数式的JavaScript库。该库的底层的实现都是懒执行的,也就是说尽量不做运算,除非站的需要。这个库不依赖第三方库,这里有一个demo,这里是API文档。

比如,我们要生成300个1到1000之间完全不同的随机数,可以这样写:

<span class="line">Lazy.generate(<span class="built_in">Math</span>.random)</span> <span class="line"> .map(<span class="function"><span class="keyword">function</span>(<span class="params">e</span>) </span>{ <span class="keyword">return</span> <span class="built_in">Math</span>.floor(e * <span class="number">1000</span>) + <span class="number">1</span>; })</span> <span class="line"> .uniq()</span> <span class="line"> .take(<span class="number">300</span>)</span> <span class="line"> .each(<span class="function"><span class="keyword">function</span>(<span class="params">e</span>) </span>{ <span class="built_in">console</span>.log(e); });</span>  

用JavaScript直接去写,代码就会复杂很多了。

lazy.js

7. CollectJS
本文链接地址:http://www.seohuizhou.com/webyouhua/1478.html
上一篇:<<跟随鼠标移动
下一篇:学前端的同学,看看你的代码书写是否规范>>