zoukankan      html  css  js  c++  java
  • 2018年你需要知道的13个JavaScript工具库

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

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

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

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

    1. Underscore & Lodash

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

    2. Ramda

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

    摘自官方:

    Ramda 主要特性如下:

    • Ramda 强调更加纯粹的函数式风格。数据不变性和函数无副作用是其核心设计理念。这可以帮助你使用简洁、优雅的代码来完成工作。
    • Ramda 函数本身都是自动柯里化的。这可以让你在只提供部分参数的情况下,轻松地在已有函数的基础上创建新函数。
    • Ramda 函数参数的排列顺序更便于柯里化。通常最后提供要操作的数据。

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

    你也可以看看:immutable.js

    3. MathJS

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

    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。

    5. Sugar

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

    6. Lazy

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

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

    Lazy.generate(Math.random)
      .map(function(e) { return Math.floor(e * 1000) + 1; })
      .uniq()
      .take(300)
      .each(function(e) { console.log(e); });
    

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

    7. CollectJS

    拥有超过3.5K个stars,collect.js是一个非常有前景并且不依赖于任何第三方库。它提供了针对数组和对象的包装,使用非常方便。

    const collection = collect([{
      name: 'JavaScript: The Good Parts', pages: 176
    }, {
      name: 'JavaScript: The Definitive Guide', pages: 1096
    }]);
    
    collection.avg('pages');
    
    //=> 636

    8. ChanceJS

    Chance是一个用来随机生成字符串、数字等的函数,他可以减少一些伪随机性,在你需要写自动化测试或则其它你需要生成随机数据的地方很有用。虽然只有3K个stars,但是这个库真的非常方便。 

    9. ChartJS

    拥有超过40K个stars,chart.js是一个少即是多的的经典例子。它只提供了8中可视化的类型,每一种都有动画并且可以自定义。Chart.js让你可以使用<canvas>标签来作图,并且在不同的浏览器上高效渲染。

    10. Polished

    拥有超过3.5K个stars,由styled-components团队开发,Polished是一个用于写css样式的工具集,提供sass风格的帮助函数和mixins。该库和styled-components,Aphrodite,Radium兼容。

    11. Mout

    Mout.js是一个JavaScript的模块化工具集合,能够以AMD模块的形式在浏览器或者Node.js中使用。Mout.js让你可以只加载你需要的模块或者函数,如下所示:

    // you can load individual methods (recommended)
    var map = require('mout/array/map');
    map([1, 2], function(v){ return val * val; }); // [1, 4]
    
    // a single package
    var stringUtils = require('mout/string');
    stringUtils.camelCase('Foo Bar'); // "fooBar"
    
    // or the whole lib
    var mout = require('mout');
    console.log( mout.math.clamp(17, 0, 10) ); // 10

    12. Voca

    一个用于处理字符串的JavaScript库,包含了很多的帮助函数,比如:change case, trim, pad, slugify, latinise, sprintf‘y, truncate, escape等等。

    13. Licia

    虽然只有500来个stars,但是Licia提供了非常多的工具函数,对于日常使用非常有帮助。 官方介绍:

    Licia是一套在开发中实践积累起来的实用JavaScript工具库。该库目前拥有超过180个模块,包括Dom操作,cookie设置,类创建,模板函数,日期格式化等实用模块,同时配套有打包工具Eustia进行定制化,使JS脚本加载量缩减在10KB以下,极大优化移动端页面的加载速度。

     
    Licia由RedHood开发,详细了解可以查看他本人在知乎上写的对Licia的介绍: 超实用JavaScript工具库。 

    关于Fundebug

    Fundebug专注于前端网页H5、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。

    自从2016年双十一正式上线,Fundebug累计处理了6亿+错误事件,目前付费用户有Google中国、360、金山软件、荔枝FM、艾瑞咨询、百姓网等众多明星企业。欢迎免费试用!

  • 相关阅读:
    使用golang访问kubebernetes
    使用 Rancher 管理现有 Kubernetes 集群
    Running powershell scripts during nuget package installation and removal
    How to Create, Use, and Debug .NET application Crash Dumps in 2019
    寻找写代码感觉(一)之使用 Spring Boot 快速搭建项目
    Selenium+Java之解决org.openqa.selenium.InvalidArgumentException: invalid argument报错问题
    Selenium环境搭建
    关于Xpath定位方法知道这些基本够用
    Web自动化之浏览器启动
    【翻译】编写代码注释的最佳实践
  • 原文地址:https://www.cnblogs.com/fundebug/p/13_js_utilities_you_need.html
Copyright © 2011-2022 走看看