└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # JavaScript 资源大全中文版 2 | 3 | [awesome-javascript](https://github.com/sorrycc/awesome-javascript) 是 sorrycc 发起维护的 JS 资源列表,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC 框架和库、模板引擎、数据可视化、时间轴、编辑器等。由「开源前哨」和「前端大全」微信公号团队维护更新。 4 | 5 | 6 | ### 本项目的参与者 7 | 8 | - 维护者:「开源前哨」和「前端大全」微信公号团队。「开源前哨」会定期在知乎专栏分享最新、有趣和热门的开源项目,每个项目都有详细的介绍和示例。传送门: 9 | 10 | - 贡献者:[Yangholmes](https://github.com/Yangholmes)、[刘健超](https://github.com/JChehe)、MissNull、一兮、Mr. Somebody、Jason Lee、Tab_Gre、GavinZhang、shadowkimi520、zhoutk、tzstone、Erichain、chen、[ElizabethMa](https://github.com/ElizabethMa)、LeuisKen、linacre、王涛、[neal1991](https://github.com/neal1991)、[luoyjx](https://github.com/luoyjx)、[appleshowc](https://github.com/appleshowc)、[TAMMENY](https://github.com/TAMMENY)、[cike8899](https://github.com/cike8899)、[cnzin](https://github.com/cnzin)、[cike8899](https://github.com/cike8899)、[hustcc](https://github.com/hustcc)、冰斌、[邢敏](https://github.com/dfghj44444)、[张小然](https://github.com/hellozhangran) 11 | 12 | 注: 名单不分排名,不定期补充更新 13 | 14 | * * * 15 | 16 | ### 目录 17 | 18 | * [JavaScript资源大全中文版](#awesome-javascript-cn) 19 | * [包管理器](#包管理器) 20 | * [加载器](#加载器) 21 | * [组件管理器](#组件管理器) 22 | * [打包工具](#打包工具) 23 | * [测试框架](#测试框架) 24 | * [QA工具](#QA-工具) 25 | * [MVC 框架和库](#MVC-框架和库) 26 | * [基于 Node 的 CMS 框架](#基于-Node-的-CMS-框架) 27 | * [模板引擎](#模板引擎) 28 | * [文章和帖子](#文章和帖子) 29 | * [数据可视化](#数据可视化) 30 | * [时间轴](#时间轴) 31 | * [电子表格](#电子表格) 32 | * [编辑器](#编辑器) 33 | * [文档](#文档) 34 | * 工具 35 | * [文件](#文件) 36 | * [函数式编程](#函数式编程) 37 | * [响应式编程](#响应式编程) 38 | * [数据结构](#数据结构) 39 | * [日期](#日期) 40 | * [字符串](#字符串) 41 | * [数字](#数字) 42 | * [存储](#存储) 43 | * [颜色](#颜色) 44 | * [国际化和本地化](#国际化和本地化) 45 | * [控制流](#控制流) 46 | * [路由](#路由) 47 | * [安全性](#security) 48 | * [日志](#日志) 49 | * [正则表达式](#正则表达式) 50 | * [语音命令](#语音命令) 51 | * [API](#API) 52 | * [流媒体](#流媒体) 53 | * [视觉检测](#视觉检测) 54 | * [机器学习](#机器学习) 55 | * [浏览器检测](#浏览器检测) 56 | * [基准测试](#基准测试) 57 | * UI 58 | * [代码高亮](#代码高亮) 59 | * [加载状态](#加载状态) 60 | * [验证](#验证) 61 | * [键盘封装器](#键盘封装器) 62 | * [导览与指南](#导览与指南) 63 | * [通知](#通知) 64 | * [幻灯片](#幻灯片) 65 | * [滑块控件](#滑块控件) 66 | * [表单组件](#表单组件) 67 | * [提示](#提示) 68 | * [模态框和弹出框](#模态框和弹出框) 69 | * [滚动条](#滚动条) 70 | * [菜单](#菜单) 71 | * [表格/栅格](#表格/栅格) 72 | * [框架](#框架) 73 | * [Boilerplates](#Boilerplates) 74 | * [手势](#手势) 75 | * [地图](#地图) 76 | * [视频/音频](#视频/音频) 77 | * [排版](#排版) 78 | * [动画](#动画) 79 | * [图片处理](#图片处理) 80 | * [ES6](#ES6) 81 | * [静态页面生成器](#静态页面生成器) 82 | * [SDK](#SDK) 83 | * [大杂烩](#大杂烩) 84 | * [精品阅读](#worth-reading) 85 | * [其他 Awesome](#其他-Awesome-系列) 86 | - [资源](#resources) 87 | - [有影响力的书](#influential-books) 88 | 89 | * * * 90 | 91 | ## 包管理器 92 | 93 | 管理、读取和打包 JavaScript 库的工具。 94 | 95 | * [npm](https://www.npmjs.com/):npm 是 JavaScript 的包管理器。 96 | * [Bower](https://github.com/bower/bower):一个 web 应用的包管理器。 97 | * [component](https://github.com/componentjs/component):能构建更好 web 应用的客户端包管理器。 98 | * [spm](https://github.com/spmjs/spm):全新的静态包管理器。 99 | * [jam](https://github.com/caolan/jam):一个专注于浏览器端的包管理器, 兼容 RequireJS 。 100 | * [jspm](https://github.com/jspm/jspm-cli):流畅的浏览器包管理器。 101 | * [Ender](https://github.com/ender-js/Ender):没有库文件的程序库。 102 | * [volo](https://github.com/volojs/volo):以项目模板、添加依赖项与自动化生成的方式创建前端项目。 103 | * [Duo](https://github.com/duojs/duo):融合了 Component、Browserify 和 Go 的最佳思想,快速无痛开发组织前端代码的下一代包管理器。 104 | * [yarn](https://yarnpkg.com/lang/en/):高效、稳定、安全的依赖管理器。 105 | * [pnpm](https://pnpm.js.org/):效率高、磁盘利用率高的包管理器 106 | 107 | ## 组件管理器 108 | 109 | * [Bit](https://github.com/teambit/bit):跨应用创建、查找、复用组件(支持 React、Angular、Node.js 等等)的组件管理器 110 | 111 | ## 加载器 112 | 113 | JavaScript 模块或加载系统。 114 | 115 | * [RequireJS](https://github.com/jrburke/requirejs):一种 JavaScript 文件和模块加载器。 116 | * [browserify](https://github.com/substack/node-browserify):像在 Node.js 一样在浏览器端使用 require() 函数。 117 | * [SeaJS](https://github.com/seajs/seajs):Web 端模块加载器。 118 | * [HeadJS](https://github.com/headjs/headjs):HEAD 里只有唯一一个 script 引入。 119 | * [curl](https://github.com/cujojs/curl):小巧、快速且易扩展的模块加载器,它能处理 AMD、CommonJS Modules/1.1、CSS、HTML/text 和非模块化脚本。 120 | * [lazyload](https://github.com/rgrove/lazyload/):小巧且无依赖的异步 JavaScript 和 CSS 加载器。 121 | * [script.js](https://github.com/ded/script.js):异步 JavaScript 加载器和依赖管理器。 122 | * [systemjs](https://github.com/systemjs/systemjs):AMD、CJS(commonJS) 和符合 ES6 规范的模块加载器。 123 | * [LodJS](https://github.com/yanhaijing/lodjs):基于 AMD 的模块加载器。 124 | * [ESL](https://github.com/ecomfe/esl):浏览器端的模块加载器,支持懒定义和 AMD。 125 | * [modulejs](https://github.com/lrsjng/modulejs):轻量的 JavaScript 模块系统。 126 | 127 | ## 打包工具 128 | 129 | * [browserify](https://github.com/substack/node-browserify):Browserify 帮助你在浏览器端使用 require('modules') 打包所有依赖。 130 | * [webpack](https://github.com/webpack/webpack):为浏览器打包 CommonJs/AMD 模块。 131 | * [Rollup](https://github.com/rollup/rollup):下一代 ES6 模块打包工具。 132 | * [Brunch](https://github.com/brunch/brunch):只需要简单声明式配置的快速前端 Webapp 构建工具。 133 | * [Parcel](https://github.com/parcel-bundler/parcel):零配置,超快速 Web 应用打包工具。 134 | * [Microbundle](https://github.com/developit/microbundle):用于小模块的零配置打包工具。 135 | * [FuseBox](https://github.com/fuse-box/fuse-box):一个只做正确事情的打包工具。 136 | 137 | ## 类型检测 138 | 139 | * [TypeScript](https://www.typescriptlang.org/):JavaScript 的超集,可以编译成原生 JavaScript 。 140 | * [Flow.js](https://flow.org/en/):Facebook 出品的静态类型检查器。 141 | * [Hegel](https://jsmonk.github.io/hegel/):偏向于强类型推断的静态类型检查器。 142 | * [TypL](https://github.com/getify/TypL):偏向于类型推断的 JavaScript 类型检查器。 143 | * [Hindley Milner Definitions](https://github.com/xodio/hm-def):使用类似 Haskell 的 Hindley Milner 类型签名的 JavaScript 函数运行时类型检查。 144 | 145 | ## 测试框架 146 | 147 | ### 框架 148 | 149 | * [mocha](https://github.com/mochajs/mocha):适用于 node.js 和浏览器的简易、灵活、有趣的 JavaScript 测试框架。 150 | * [jasmine](https://github.com/jasmine/jasmine):简单无 DOM 的 JavaScript 测试框架。 151 | * [qunit](https://github.com/jquery/qunit):一个易用的 JavaScript 单元测试框架。 152 | * [jest](https://github.com/facebook/jest):能无痛使用的 JavaScript 单元测试框架。 153 | * [prova](https://github.com/azer/prova):基于 Tape 和 Browserify 的测试运行器,适用于 Node 和 浏览器。 154 | * [DalekJS](https://github.com/dalekjs/dalek):跨浏览器的 JavaScript 自动化功能测试框架(已经停止维护——译者注)。 155 | * [Protractor](https://github.com/angular/protractor):适用于 AngularJS 应用的端到端测试框架。 156 | * [tape](https://github.com/substack/tape):适用于 Node 和浏览器的 tap 生成器测试套件。 157 | * [TestCafe](https://github.com/DevExpress/testcafe):适用于现代 Web 应用开发栈的自动化浏览器测试工具。 158 | * [ava](https://github.com/avajs/ava):🚀 未来感十足的测试运行器。 159 | * [Cypress](https://www.cypress.io/):一个完整的端到端测试框架,用于测试在浏览器中运行的所有代码。 160 | 161 | ### 断言 162 | 163 | * [chai](https://github.com/chaijs/chai):适用于 node.js 和浏览器的 BDD / TDD 断言框架,并能搭配任意测试框架使用。 164 | * [Enzyme](http://airbnb.io/enzyme/index.html):Enzyme 是一款 React 专用的 JavaScript 测试工具,让断言、操作和遍历 React 组件之后输出更加容易。 165 | * [react testing library](https://github.com/kentcdodds/react-testing-library):简单完备的 React DOM 测试工具,引导更好的测试实践。 166 | * [Sinon.JS](https://github.com/sinonjs/sinon):对 JavaScript 进行 spies、stubs 和 mock 测试。 167 | * [expect.js](https://github.com/Automattic/expect.js):简约的、适用于 Node.js 和浏览器端的 BDD 风格的断言工具。 168 | * [proxyquire](https://github.com/thlorenz/proxyquire):Node.js 依赖桩代码。 169 | 170 | ### 覆盖率 171 | 172 | * [istanbul](https://github.com/gotwarlost/istanbul):一个 JavaScript 代码覆盖率检测工具。 173 | * [blanket](https://github.com/alex-seville/blanket):一个简单的代码覆盖率检测库。它的设计理念是易于安装和使用,浏览器和 node.js 都可用。 174 | * [JSCover](https://github.com/tntim96/JSCover):JSCover 是一个检测 JavaScript 程序代码覆盖率的工具。 175 | 176 | ### 运行器 177 | 178 | * [phantomjs](https://github.com/ariya/phantomjs):无界面的 Webkit 运行时(已暂停开发——译者注)。 179 | * [slimerjs](https://github.com/laurentj/slimerjs):一个内核为 Gecko 的类似 PhantomJS 工具。 180 | * [casperjs](https://github.com/n1k0/casperjs):基于 PhantomJS 和 Slimer JS 的导航脚本和测试工具。 181 | * [zombie](https://github.com/assaf/zombie):基于 node.js 的超快速、全栈且无图形界面的浏览器的测试工具。 182 | * [totoro](https://github.com/totorojs/totoro):一个简单可靠的跨浏览器测试工具。 183 | * [karma](https://github.com/karma-runner/karma):一款超级棒的 JavaScript 测试运行器(多浏览器测试场景下的 JavaScript 执行工具——译者注)。 184 | * [nightwatch](https://github.com/nightwatchjs/nightwatch):基于 node.js 和 selenium webdriver 的图形界面自动化测试框架。 185 | * [intern](https://github.com/theintern/intern):下一代 JavaScript 代码测试栈。 186 | * [yolpo](http://www.yolpo.com/):在浏览器逐句执行的 JavaScript 解释器。 187 | * [puppeteer](https://github.com/GoogleChrome/puppeteer):谷歌 Chrome 团队出品,无界面 Chrome (Chromium) Node.js API 环境。 188 | * [webdriverio](https://github.com/webdriverio/webdriverio):下一代 Web 驱动的 Node.js 自动化测试框架。 189 | * [taiko](https://github.com/getgauge/taiko):用于自动测试 Chromium 内核浏览器的简易 Node.js API 库。 190 | 191 | ## QA 工具 192 | 193 | * [Prettier](https://github.com/prettier/prettier):Prettier 是一款固执(严格)的代码格式化工具。 194 | * [JSHint](https://github.com/jshint/jshint/):JSHint 是一款用于检测 JavaScript 代码错误和潜在问题的工具。 195 | * [jscs](https://github.com/jscs-dev/node-jscs):JavaScript 代码风格检测工具。 196 | * [jsfmt](https://github.com/rdio/jsfmt):格式化、搜索和改写 JavaScript。 197 | * [jsinspect](https://github.com/danielstjules/jsinspect):检测复制粘贴和结构类似的代码。 198 | * [buddy.js](https://github.com/danielstjules/buddy.js):检测 JavaScript 代码里的魔术数字。 199 | * [ESLint](https://github.com/eslint/eslint):一款完全可插拔的 JavaScript 模板检测和报告工具。 200 | * [JSLint ](https://github.com/douglascrockford/JSLint):高标准、严要求且固执的代码质量工具,旨在保持语言的精华部分。 201 | * [JavaScript Standard Style](https://github.com/feross/standard):固执、无需配置的代码风格规范、检查器和格式化工具。 202 | * [Pre-evaluate code at buildtime](https://github.com/kentcdodds/preval.macro):构建阶段前端 JavaScript 代码与评估器。 203 | * [JS-Beautifier](https://github.com/beautify-web/js-beautify):格式化 JavaScript 代码的 npm 脚手架和库。 204 | * [husky](https://github.com/typicode/husky):防止劣质的 git commit、git push 等 git 操作。 205 | 206 | ## MVC 框架和库 207 | 208 | * [angular.js](https://github.com/angular/angular.js):专为 web 应用设计的增强型 HTML 。 209 | * [aurelia](http://aurelia.io/):一个适用于移动设备、桌面设备和 web 的 JavaScript 客户端框架。 210 | * [backbone](https://github.com/jashkenas/backbone):web 应用模型层、视图层、数据集合和事件的骨架。 211 | * [ember.js](https://github.com/emberjs/ember.js):一个旨在创建非凡 web 应用的 JavaScript 框架。 212 | * [meteor](https://github.com/meteor/meteor):一个超简单的、数据库无处不在的、只传输数据的纯 JavaScript web 框架。 213 | * [ractive](https://github.com/ractivejs/ractive):新一代 DOM 操作。 214 | * [vue](https://github.com/vuejs/vue):一套用于构建用户界面的渐进式框架。 215 | * [svelte](https://github.com/sveltejs/svelte):svelte 是一种构建 web 应用的新方式。svelte 编译器将声明式组件编译成高效的 JavaScript 代码,并且会像外科手术那样更新 DOM。 216 | * [knockout](https://github.com/knockout/knockout):Knockout 让使用 JavaScript 创建响应式富 UI 更加容易。 217 | * [spine](https://github.com/spine/spine):轻量级 JavaScript 应用 MVC 框架。 218 | * [espresso.js](https://github.com/techlayer/espresso.js):一个极小的、用于制作用户界面的 JavaScript 库。 219 | * [canjs](https://github.com/canjs/canjs):让 JS 更好、更快、更简单。 220 | * [react](https://facebook.github.io/react/):用于建构用户界面的库。它是声明式的、高效的和极度灵活的。以虚拟 DOM 作为其实现。 221 | * [hyperapp](https://github.com/hyperapp/hyperapp):体积仅 1kb 的前端应用构件库。 222 | * [preact](https://github.com/developit/preact):体积仅 3kb 的用 ES6 api 实现的 React 替代方案。(和 React 一样基于)组件和虚拟 DOM。 223 | * [nativescript](https://github.com/NativeScript/NativeScript):构建真正的跨平台原生 JavaScript 应用,支持 iOS 和 Android 。 224 | * [react-native](https://github.com/facebook/react-native):一个用 React 构建原生应用的框架。 225 | * [riot](https://github.com/riot/riot):轻量级类 React 库。 226 | * [thorax](https://github.com/walmartlabs/thorax):强化版 Backbone。 227 | * [chaplin](https://github.com/chaplinjs/chaplin):使用 Backbone.js 库的 JavaScript 应用架构。 228 | * [marionette](https://github.com/marionettejs/backbone.marionette):一个 Backbone.js 的复合应用程序库,旨在简化大型 JavaScript 应用结构。 229 | * [ripple](https://github.com/ripplejs/ripple):一个小巧的、用于构建响应界面的基础框架。 230 | * [rivets](https://github.com/mikeric/rivets):轻量却拥有强大的数据绑定和模板解决方案。 231 | * [derby](https://github.com/derbyjs/derby):让编写实时和协同应用更简单的 MVC 框架,能够同时在 Node.js 和浏览器运行。 232 | * [derby-awesome](https://github.com/russll/awesome-derby):很棒的 derby 组件集合。 233 | * [way.js](https://github.com/gwendall/way.js):简单、轻量、持久的双向数据绑定库。 234 | * [mithril.js](https://github.com/lhorie/mithril.js):Mithril 是一个客户端 MVC 框架(轻量、强大和快速) 235 | * [jsblocks](https://github.com/astoilkov/jsblocks):jsblocks 是一个更好的类 MV 框架。 236 | * [LiquidLava](http://www.lava-framework.com/):用于构建用户界面的透明 MVC 框架。 237 | * [feathers](https://github.com/feathersjs/feathers):专为未来应用设计的极简主义实时 JavaScript 库。 238 | * [Keo](https://github.com/Wildhoney/Keo):基于 Shadow DOM 的函数式无状态的 React 组件(框架)。 239 | * [atvjs](https://github.com/emadalam/atvjs):使用原生 JavaScript 快速开发 Apple TV 应用。 240 | * [makefun](https://www.npmjs.com/package/makefun):链式 Promise 调用。 241 | * [Alpine.js](https://github.com/alpinejs/alpine):Alpine.js 以更低的代价实现了像 Vue 和 React 这类大型架构一样的响应式和声明式的特性。 242 | * [inferno](https://github.com/infernojs/inferno):🔥 一款用于构建现代用户界面的超级快速、类似 React 的 JS 库。 243 | 244 | ## 基于 Node 的 CMS 框架 245 | 246 | * [KeystoneJS](https://github.com/keystonejs/keystone):强大的 CMS 和 Web 应用框架。 247 | * [Reaction Commerce](https://github.com/reactioncommerce/reaction):拥有实时的架构和设计的响应式 CMS。 248 | * [Ghost](https://github.com/tryghost/Ghost):简单、强大的发布平台。 249 | * [Apostrophe](https://github.com/punkave/apostrophe):提供内容编辑和基本服务的 CMS。 250 | * [We.js](https://github.com/wejs/we/):适用于实时应用、网站或博客的框架。 251 | * [Hatch.js](https://github.com/inventures/hatchjs):拥有社交特性的 CMS 平台。 252 | * [TaracotJS](https://github.com/xtremespb/taracotjs-generator/):基于 Node.js 的快速、极简风格 CMS。 253 | * [Nodizecms](https://github.com/nodize/nodizecms):为 CoffeeScript 爱好者准备的 CMS。 254 | * [Cody](https://github.com/jcoppieters/cody):拥有所见即所得编辑器的 CMS。 255 | * [PencilBlue](https://github.com/pencilblue/pencilblue/):一个 CMS 和博客平台。 256 | * [Strapi](https://github.com/strapi/strapi):开源无界面的 Node.js CMS 系统,可轻松定制个性化接口。 257 | * [Factor](https://github.com/fiction-com/factor):一款 JavaScript CMS。 258 | 259 | ## 模板引擎 260 | 261 | *模板引擎用于执行字符串插值。* 262 | 263 | * [mustache.js](https://github.com/janl/mustache.js):JavaScript 最精简的 {{mustaches}} 模板 264 | * [handlebars.js](https://github.com/wycats/handlebars.js/):Mustache 模板语言的扩展。 265 | * [nunjucks](https://mozilla.github.io/nunjucks/):Mozilla 出品,丰富且强大的 JavaScript 模板语言。 266 | * [hogan.js](https://github.com/twitter/hogan.js):是 Mustache 模板语言的编译器。 267 | * [doT](https://github.com/olado/doT):最快速简洁的 JavaScript 模板引擎,适用于 Node.js 和浏览器。 268 | * [dustjs](https://github.com/linkedin/dustjs/):适用于浏览器和 Node.js 的异步模板。 269 | * [eco](https://github.com/sstephenson/eco/):嵌入式的 CoffeeScript 模板。 270 | * [JavaScript-Templates](https://github.com/blueimp/JavaScript-Templates):轻量(小于 1KB)、快速、强大且无依赖的 JavaScript 模版引擎。 271 | * [t.js](https://github.com/jasonmoo/t.js):小巧的 JavaScript 模板框架,压缩后约为 400 字节。 272 | * [Pug](https://github.com/pugjs/pug):健壮的、优雅且功能丰富的 nodejs 模板引擎。`(曾用名:Jade)` 273 | * [EJS](https://github.com/mde/ejs):高效的 JavaScript 模板。 274 | * [xtemplate](https://github.com/xtemplate/xtemplate):可扩展的模板引擎,适用于 node.js 和浏览器。 275 | * [marko](https://github.com/marko-js/marko):基于 HTML 快速轻量的模板引擎,支持异步、流、自定义标签,支持 CommonJS 模块作为编译后输出,适用于 Node.js 和浏览器。 276 | * [swig](https://github.com/paularmstrong/swig):一款简单、强大、可扩展的基于 Node.js 和 浏览器的 JavaScript 模板引擎。`(已停止维护)` 277 | * [EHTML](https://github.com/Guseyn/EHTML):一款实现零编写 JavaScript 的 HTML 框架。 278 | 279 | ## 文章和帖子 280 | 281 | * [你必须知道的 JavaScript 知识](https://medium.com/@pedropolisenso/o-javasscript-que-você-deveria-conhecer-b70e94d1d706):介绍 JavaScript 基本概念的葡萄牙语文章。 282 | * [JavaScript 运行原理](https://blog.sessionstack.com/tagged/tutorial):介绍 JavaScript 构建块的文集。 283 | * [利用 web-workers 实现多线程](https://www.loginradius.com/engineering/blog/adding-multi-threading-to-javascript-using-web-workers/):Web Worker :为 JavaScript 添加多线程。 284 | * [JavaScript 的 this 关键字](https://www.loginradius.com/engineering/blog/breaking-down-this-keyword-in-javascript/):细嚼慢咽理解 JS this 关键字。 285 | 286 | ## 数据可视化 287 | 288 | Web 数据可视化工具 289 | 290 | * [d3](https://github.com/mbostock/d3):一款 JavaScript 数据可视化库,使用 HTML、SVG 和 Canvas 技术展现数据。 291 | * [metrics-graphics](https://github.com/mozilla/metrics-graphics):更简洁和拥有更规范的数据图表布局优化算法的库。 292 | * [three.js](https://github.com/mrdoob/three.js):JavaScript 3D 库。 293 | * [Chart.js](https://github.com/nnnick/Chart.js):简单的基于 `` 标签的 HTML5 图表库。 294 | * [paper.js](https://github.com/paperjs/paper.js):矢量图形脚本的瑞士军刀,利用 HTML5 Canvas 将脚本-图表转换移植到 JavaScript 和浏览器。 295 | * [fabric.js](https://github.com/kangax/fabric.js):JavaScript Canvas 库,实现 SVG 与 Canvas 相互解析。 296 | * [peity](https://github.com/benpickles/peity):进度条、线状和饼状图。 297 | * [raphael](https://github.com/DmitryBaranovskiy/raphael):JavaScript 矢量库。 298 | * [Echarts](https://github.com/ecomfe/echarts):企业级图表库。 299 | * [vis](https://github.com/almende/vis):动态的、基于浏览器的可视化库。 300 | * [two.js](https://github.com/jonobr1/two.js):一个渲染器无关的适用于 web 的二维绘图 api 库。 301 | * [g.raphael](https://github.com/DmitryBaranovskiy/g.raphael):为 Raphaël 设计的图表库。 302 | * [sigma.js](https://github.com/jacomyal/sigma.js):一个致力于图形绘画的 JavaScript 库。 303 | * [arbor](https://github.com/samizdatco/arbor):一个基于 web workers 和 jQuery 的图形可视化库。 304 | * [cubism](https://github.com/square/cubism):可视化时间序列的 D3 插件。 305 | * [dc.js](https://github.com/dc-js/dc.js):与 crossfilter 无缝结合的多维图表绘制库,使用 d3.js 渲染。 306 | * [vega](https://github.com/trifacta/vega):一套可视化语法。 307 | * [processing.js](http://processingjs.org/):Processing.js 实现了 Web 标准使数据可视化,而且无需任何插件。 308 | * [envisionjs](https://github.com/HumbleSoftware/envisionjs):动态的 HTML5 可视化。 309 | * [rickshaw](https://github.com/shutterstock/rickshaw):用于构建交互式实时图表的 JavaScript 工具包。 310 | * [flot](https://github.com/flot/flot):吸引人的、基于 jQuery 的 JavaScript 图表库。 311 | * [morris.js](https://github.com/morrisjs/morris.js):漂亮的时间序列图。 312 | * [nvd3](https://github.com/novus/nvd3):一个为 d3.js 构建可复用图表和图表组件的库。 313 | * [svg.js](https://github.com/wout/svg.js):一个轻量级的 SVG 操作和动画库。 314 | * [heatmap.js](https://github.com/pa7/heatmap.js):基于 HTML5 canvas 的热力图 JavaScript 库。 315 | * [jquery.sparkline](https://github.com/gwatts/jquery.sparkline):一个直接在浏览器端生成小型走势图的 jQuery 插件。 316 | * [trianglify](https://github.com/qrohlf/trianglify):基于 d3.js 的低聚风格背景图片生成器。 317 | * [d3-cloud](https://github.com/jasondavies/d3-cloud):创建词云效果的 JavaScript 库。 318 | * [d4](https://github.com/heavysixer/d4):一个基于 d3 、友好、可复用的 DSL 图表库 。 319 | * [dimple.js](http://dimplejs.org/):基于 d3 的简易商业分析图表库。 320 | * [chartist-js](https://github.com/gionkunz/chartist-js):简单的响应式图表。 321 | * [epoch](https://github.com/epochjs/epoch):一个通用的实时图表库。 322 | * [c3](https://github.com/masayuki0812/c3):基于 d3 的可复用图表库。 323 | * [BabylonJS](https://github.com/BabylonJS/Babylon.js):一个基于 HTML5 和 WebGL 的 3D 游戏的框架。 324 | * [recharts](https://github.com/recharts/recharts):基于 React 和 d3 ,重新定义图标库。 325 | * [GraphicsJS](https://github.com/AnyChart/GraphicsJS):轻量级直观接口 JavaScript 图形库,基于 SVG/VML 技术。 326 | * [mxGraph](https://github.com/jgraph/mxgraph):一款可快速创建交互式图表应用的图形库,支持任何主流浏览器(`已停止开发——译者注`)。 327 | * [Frappe Charts](https://github.com/frappe/charts):GitHub 驱动,为 web 设计的简易、现代且零依赖的 SVG 图形库。 328 | * [Frappe Gantt](https://github.com/frappe/gantt):一款简单、可交互、现代的 Web 甘特图库。 329 | 330 | 还有一些很棒的收费库,如 [amchart](https://www.amcharts.com/)、[plotly](https://plot.ly/) 和 [highchart](http://www.highcharts.com/)。 331 | 332 | ## 时间轴 333 | 334 | * [TimelineJS](https://github.com/NUKnightLab/TimelineJS):一个用 JavaScript 编写的可叙事时间轴库。 335 | * [timesheet.js](https://github.com/semu/timesheet.js):用于构建简单的 HTML5 & CSS3 时间表的 JavaScript 库。 336 | 337 | ## 电子表格 338 | 339 | * [HANDSONTABLE](https://github.com/handsontable/handsontable):Handsontable 是一款面向开发者的 JavaScript/HTML 340 | 5 电子表格库。 341 | * [Frappe Datatable](https://github.com/frappe/datatable):Frappe DataTable 是一款适用于展示 Tabular 数据的简单、现代、可交互的数据表格库。 342 | * [Luckysheet](https://github.com/mengshukeji/Luckysheet):Luckysheet 是一款类似 Excel 的在线电子表格,配置简单且强大,完全开源。 343 | 344 | ## 编辑器 345 | 346 | * [ace](https://github.com/ajaxorg/ace):Ace ,即 Ajax.org Cloud9 Editor。 347 | * [CodeMirror](https://github.com/codemirror/CodeMirror):一个浏览器端的代码编辑器,用 JS 实现。 348 | * [esprima](https://github.com/ariya/esprima):用于多用途分析的 ECMAScript 解析器。 349 | * [quill](https://github.com/quilljs/quill):一个带有 API 的跨浏览器富文本编辑器。 350 | * [medium-editor](https://github.com/yabwe/medium-editor):Medium.com 使用的所见即所得编辑器的克隆版。 351 | * [pen](https://github.com/sofish/pen):享受在线编辑(支持 markdown)。 352 | * [jquery-notebook](https://github.com/raphaelcruzeiro/jquery-notebook):一个易用的、简洁优雅的文本编辑器。灵感来源于 Medium。 353 | * [bootstrap-wysiwyg](https://github.com/mindmup/bootstrap-wysiwyg):小巧的、兼容 bootstrap 的所见即所得的富文本编辑器。 354 | * [ckeditor-releases](https://github.com/ckeditor/ckeditor-releases):适用于每个人的 web 文本编辑器。 355 | * [editor](https://github.com/lepture/editor):一个 markdown 编辑器,但仍在开发中。 356 | * [EpicEditor](https://github.com/OscarGodson/EpicEditor):一个可嵌入的 JavaScript Markdown 的编辑器,拥有分屏编辑、即时预览、自动保存草稿和离线支持等功能。 357 | * [jsoneditor](https://github.com/josdejong/jsoneditor):查看、编辑和格式化 JSON 的 web 工具。 358 | * [vim.js](https://github.com/coolwanglu/vim.js):拥有持久化 ~/.vimrc 特性,支持 Vim 的 JavaScript 接口。 359 | * [Squire](https://github.com/neilj/Squire):一个 HTML5 富文本编辑器。 360 | * [TinyMCE](https://github.com/tinymce/tinymce):一个 JavaScript 富文本编辑器。 361 | * [trix](https://github.com/basecamp/trix):由 Basecamp 制作,适用于每天写作的富文本编辑器。 362 | * [Trumbowyg](https://github.com/Alex-D/Trumbowyg):一款轻量且惊人的所见即所得 JavaScript 编辑器 363 | * [Draft.js](https://github.com/facebook/draft-js):用于构建文本编辑器的 React 框架。 364 | * [bootstrap-wysihtml5](https://github.com/jhollingworth/bootstrap-wysihtml5):一款简单漂亮的所见即所得编辑器。 365 | * [wysihtml5](https://github.com/xing/wysihtml5):基于 HTML5 ,渐进增强的开源富文本编辑器,利用非常严苛的规则旨在生成符合 HTML5 规范的标签,避免生成非规范标签和同行样式。 366 | * [raptor-editor](https://github.com/PANmedia/raptor-editor):Raptor,一款 HTML5 所见即所得内容编辑器! 367 | * [popline](https://github.com/kenshin54/popline):Popline 是一款 HTML5 富文本工具栏。 368 | * [Summernote](https://github.com/summernote/summernote):一个极简的所见即所得编辑器。 369 | 370 | ## 文档 371 | 372 | * [DevDocs](http://devdocs.io/):一款多合一接口文档阅读器,界面统一、高效、排版精良。 373 | * [dexy](http://www.dexy.it/):一款格式自由且文艺的文档工具,可用于编写任何包含代码的技术文档。 374 | * [docco](http://jashkenas.github.io/docco/):一款快且脏、百来行、文艺范的文档生成器,用 Literate CoffeeScript 实现。 375 | * [styledocco](http://jacobrask.github.io/styledocco/):根据样式表生成风格规范文档。 376 | * [Ronn](https://github.com/rtomayko/ronn):构建手册。把对人类阅读友好的简单文本文件转换成 roff 格式文件,便于终端显示,也可以转换为 HTML ,便于 Web 端显示。 377 | * [dox](https://github.com/tj/dox):一款 Node.js 开发的 JavaScript 文档生成器。Dox 不会生成结构样式严苛的文档,而是采用 JSON 表示法,以实现 markdown 和 JSDoc 风格标签。 378 | * [jsdox](https://github.com/sutoiku/jsdox):一款将 JSDoc3 转换成 markdown 的文档生成器。 379 | * [ESDoc](https://github.com/esdoc/esdoc):一款为 JavaScript 设计的优秀文档生成器。 380 | * [YUIDoc](http://yui.github.io/yuidoc/):一款提取源码注释生成接口文档的 Node.js 应用,功能类似 Javadoc and Doxygen 。 381 | * [coddoc](http://doug-martin.github.io/coddoc/):一款 jsdoc 解析库。Coddoc 与其他工具相比)的不同之处在于,它很容易扩展,通过 coddoc.addTagHandler 和 coddoc.addCodeHandler 来添加标签和代码解析器。 Coddoc 还可以解析源码生成接口文档。 382 | * [sphinx](http://www.sphinx-doc.org/):一款让创建智能且漂亮文档更加简单的工具。 383 | * [Using JSDoc](http://usejsdoc.org/) 384 | * [Beautiful docs](http://beautifuldocs.com/):一款 markdown 格式文档阅读器。 385 | * [documentation.js](http://documentation.js.org):支持 ES2015+ 和流注释的接口文档生成器。 386 | * [jsduck](https://github.com/senchalabs/jsduck):为 Sencha JavaScript 框架开发的接口文档生成器,当然其他框架也能用。 387 | * [codecrumbs](https://github.com/Bogdan-Lyashenko/codecrumbs):一款用于学习和记录代码库的可视化工具,通过在源码中插入面包屑来实现功能。 388 | 389 | ## 文件 390 | 391 | *处理文件的库。* 392 | 393 | * [Papa Parse](https://github.com/mholt/PapaParse):一款强大的 CSV 库,支持解析 CSV 文件/字符串,也能导出 CSV。 394 | * [jBinary](https://github.com/jDataView/jBinary):对用声明式语法描述文件类型和数据结构的二进制文件,进行高级 I/O(加载、解析、操作、序列化、存储)操作。 395 | * [diff2html](https://github.com/rtfpessoa/diff2html):git 差异输出解析器,也是 HTML 美化器。 396 | * [jsPDF](https://github.com/MrRio/jsPDF):一款 JavaScript PDF 文件生成器。 397 | * [PDF.js](https://github.com/mozilla/pdf.js):一个 JavaScript PDF 阅读器,社区驱动,Mozilla 支持。 398 | 399 | ## 函数式编程 400 | 401 | *函数式编程库提升了 JavaScript 的能力。* 402 | 403 | * [underscore](https://github.com/jashkenas/underscore):JavaScript 的实用工具。 404 | * [lodash](https://github.com/lodash/lodash):提供一致性、可定制、高性能和额外功能的实用库。 405 | * [Sugar](https://github.com/andrewplummer/Sugar):一个扩展了原生对象功能的 JavaScript 库。 406 | * [lazy.js](https://github.com/dtao/lazy.js):类似 `Underscore`,但性能更优越 407 | * [ramda](https://github.com/CrossEye/ramda):一个针对 JavaScript 程序员的实用函数库。 408 | * [mout](https://github.com/mout/mout):模块化的 JavaScript 工具库。 409 | * [mesh](https://github.com/crcn/mesh.js):流数据同步工具。 410 | * [preludejs](https://github.com/alanrsoares/prelude-js):JavaScript 硬核函数式编程。 411 | * [rambda](https://github.com/selfrefactor/rambda):*Ramda* 快速小巧的替代品。 412 | 413 | ## 响应式编程 414 | 415 | *响应式程序库提升了 JavaScript 的能力。* 416 | 417 | * [RxJs](https://github.com/Reactive-Extensions/RxJS):对 JavaScript 进行响应式扩展。 418 | * [Bacon](https://github.com/baconjs/bacon.js):JavaScript 的 FPR(函数式响应式编程)库。 419 | * [Kefir](https://github.com/pozadi/kefir):受 Bacon.js 和 RxJS 启发的 FRP 库,专注于高性能和低内存消耗。 420 | * [Highland](http://highlandjs.org/):对 JavaScript 实用工具的重新思考,Highland 能轻易地管理同步和异步信息,而且仅使用标准 JavaScript 和类 Node 流。 421 | * [Most.js](https://github.com/cujojs/most):高性能 FRP 库。 422 | * [MobX](https://github.com/mobxjs/mobx):一款简单可扩展的状态管理 TFRP (`Transparently Functional Reactive Programming ,透明函数式响应式编程——译者注`)库。 423 | * [Cycle.js](https://cycle.js.org):一款用于可预测代码的函数式和响应式 JavaScript 框架。 424 | * [concent](https://github.com/concentjs/concent):绝对是 ❤️ 最简单却 ⚡️ 最强大的 react 状态管理开发框架,可预测、渐进式、高性能。 425 | 426 | ## 数据结构 427 | 428 | *数据结构库用于构建一个更复杂的应用。* 429 | 430 | * [immutable-js](https://github.com/facebook/immutable-js):不可变的数据集合,包括 Sequence、Range、Repeat、Map、OrderedMap、Set 和 sparse Vector。 431 | * [mori](https://github.com/swannodette/mori):使用 ClojureScript 持久化数据结构和支持原生 JavaScript API 的库。 432 | * [buckets](https://github.com/mauriciosantos/Buckets-JS):完整的、经过充分测试和文档完备的数据结构的 JavaScript 库。 433 | * [hashmap](https://github.com/flesler/hashmap):简单的哈希映射实现,支持任何类型的键值。 434 | 435 | ## 日期 436 | 437 | *日期库。* 438 | 439 | * [moment](https://github.com/moment/moment):解析、验证、操作和显示日期。 440 | * [moment-timezone](https://github.com/moment/moment-timezone):基于 moment.js 的时区库。 441 | * [jquery-timeago](https://github.com/rmm5t/jquery-timeago):一款支持自动更新模糊时间戳的 jQuery 插件(如:"4 分钟之前")。 442 | * [timezone-js](https://github.com/mde/timezone-js):让 JavaScript Date 对象拥有时区功能。使用 Olson zoneinfo 文件记录时区数据。 443 | * [date](https://github.com/MatthewMueller/date):对人类友好的 Date()。 444 | * [ms.js](https://github.com/rauchg/ms.js):小巧的毫秒转换工具。 445 | * [countdown.js](https://github.com/gumroad/countdown.js):超小倒计时。 446 | * [timeago.js](http://timeago.org):一个非常轻量级(~1.7 Kb)的用于将时间转化成 `xxx时间前` 格式的库。 447 | * [fecha](https://github.com/taylorhakes/fecha):轻量级日期格式化和解析库(约 2kb)。可以用来替换 moment.js 格式化和解析日期功能(moment.js 体积比较大——译者注)。 448 | * [date-fns](https://github.com/date-fns/date-fns):现代 JavaScript 日期功能库。 449 | * [map-countdown](https://github.com/dawidjaniga/map-countdown):构建在 Google 地图上的浏览器倒计时。 450 | * [dayjs](https://github.com/iamkun/dayjs):Day.js 是一款拥有和 Moment.js 一样的现代化接口的日期库,但它仅仅有 2kb 大小,可以用来替换 Moment.js。 451 | 452 | ## 字符串 453 | 454 | *字符串库。* 455 | 456 | * [voca](https://github.com/panzerdp/voca):一款超级好用的 JavaScript 字符串库。 457 | * [selecting](https://github.com/EvandroLG/selecting):一个允许你获取用户选定文本的库。 458 | * [underscore.string](https://github.com/epeli/underscore.string):Underscore.js 的字符串操作扩展。 459 | * [string.js](https://github.com/jprichardson/string.js):额外的 JavaScript 字符串方法。 460 | * [he](https://github.com/mathiasbynens/he):健壮的 HTML 实体编码/解码器。 461 | * [multiline](https://github.com/sindresorhus/multiline):多行字符串。 462 | * [query-string](https://github.com/sindresorhus/query-string):解析和字符串化 URL 查询字符串。 463 | * [URI.js](https://github.com/medialize/URI.js/):URL 操作库。 464 | * [jsurl](https://github.com/Mikhus/jsurl):轻量的 URL 操作库。 465 | * [sprintf.js](https://github.com/alexei/sprintf.js):实现字符串格式化。 466 | * [url-pattern](https://github.com/snd/url-pattern):比正则表达式匹配 url 或其它字符串更简单,字符串和数据可相互转化。 467 | * [plexis](https://github.com/plexis-js/plexis):低保真、强大、社区驱动的字符串操作库。 468 | 469 | ## 数字 470 | 471 | * [Numeral-js](https://github.com/adamwdraper/Numeral-js):对数字进行格式化和操作的库。 472 | * [chance.js](https://github.com/chancejs/chancejs):JavaScript 随机生成器,可以生成数字、字符串等。 473 | * [odometer](https://github.com/HubSpot/odometer):流畅的数字过渡效果。 474 | * [accounting.js](https://github.com/josscrowcroft/accounting.js):对数字、金钱、货币进行格式化的轻量库,完全本地化和无依赖。 475 | * [money.js](https://github.com/josscrowcroft/money.js):一个小巧(1kb)的货币转换库,适用于 web 和 nodeJS。 476 | * [Fraction.js](https://github.com/infusion/Fraction.js):一个有理数库。 477 | * [Complex.js](https://github.com/infusion/Complex.js):一个复数库。 478 | * [Polynomial.js](https://github.com/infusion/Polynomial.js):一个多项式库。 479 | * [Quaternion.js](https://github.com/infusion/Quaternion.js):一款适用于 JavaScript 的四元数操作库。 480 | 481 | ## 存储 482 | 483 | * [store.js](https://github.com/marcuswestin/store.js):为所有浏览器封装了 LocalStorage,而没有使用 cookies 和 flash。隐秘地使用 localStorage、globalStorage 和用户数据。 484 | * [localForage](https://github.com/mozilla/localForage):改善后的离线存储。其封装了 IndexedDB、WebSQL 和 localStorage,拥有操作简单和强大的 API。 485 | * [jStorage](https://github.com/andris9/jStorage):jStorage 是一个简单的键值对数据库,用于在浏览器端存储数据。 486 | * [cross-storage](https://github.com/zendesk/cross-storage):获得权限后,能跨域名本地存储。 487 | * [basket.js](https://github.com/addyosmani/basket.js):用 localStorage 加载和缓存脚本的资源加载器。 488 | * [bag.js](https://github.com/nodeca/bag.js):可以缓存脚本和加载资源,与 basket.js 相似,但增加了键值对接口和对 localStorage / websql / indexedDB 的支持。 489 | * [basil.js](https://github.com/Wisembly/basil.js):智能的 JavaScript 数据持久层库。 490 | * [jquery-cookie](https://github.com/carhartl/jquery-cookie):轻量简单的、用于读取、编辑和删除 cookie 的 jQuery 插件。 491 | * [js-cookie](https://github.com/js-cookie/js-cookie):一款简单、轻量的 cookies 读写删 jQuery 插件。 492 | * [Cookies](https://github.com/ScottHamper/Cookies):一个客户端 Cookie 操作库。 493 | * [DB.js](https://github.com/aaronpowell/db.js/):基于 Promise 的、封装了 IndexedDB 的库。 494 | * [lawnchair.js](https://github.com/brianleroux/lawnchair/):简单的客户端 JSON 存储。 495 | * [sql.js](https://github.com/kripken/sql.js):基于 Emscripten 将 SQLite 编译成 JavaScript。 496 | * [crumbsjs](https://github.com/nirtz89/crumbsjs):一款轻量级原生 ES6 cookies 和本地存储 JavaScript 库。 497 | * [awesome-web-storage](https://github.com/softvar/awesome-web-storage):你必须知道的所有客户端存储知识。 498 | 499 | ## 颜色 500 | 501 | * [randomColor](https://github.com/davidmerfield/randomColor):JavaScript 颜色生成器。 502 | * [chroma.js](https://github.com/gka/chroma.js):拥有各种各样颜色操作的 JavaScript 库。 503 | * [color](https://github.com/MoOx/color):JavaScript 颜色转换和操作库。 504 | * [colors](https://github.com/mrmrs/colors):更智能的默认 web 颜色。 505 | * [PleaseJS](https://github.com/Fooidge/PleaseJS):随机创建出赏心悦目的颜色和配色方案的 JavaScript 库。 506 | * [TinyColor](https://github.com/bgrins/TinyColor):快速、轻巧的颜色操作和转换库。 507 | * [Vibrant.js](https://github.com/jariz/vibrant.js/):从图像提取主要颜色。 508 | 509 | ## 国际化和本地化 510 | 511 | *本地化(l10n)和国际化(i18n) JavaScript 库* 512 | 513 | * [i18next](https://github.com/i18next/i18next):用 JavaScript 实现国际化(i18n)简单的方法。 514 | * [polyglot](https://github.com/airbnb/polyglot.js):小巧的国际化助手库。 515 | * [babelfish](https://github.com/nodeca/babelfish/):提供友好易懂 API 的 i18n 库,并且内置多种支持。 516 | * [ttag](https://github.com/ttag-org/ttag):基于 ES6 标签模板和优秀的旧 GNU gettext ,新潮的 JavaScript 国际化、本地化库。 517 | 518 | ## 控制流 519 | 520 | * [async](https://github.com/caolan/async):适用于 node.js 和浏览器的异步工具库。 521 | * [q](https://github.com/kriskowal/q):实现异步 promise 的 JavaScript 工具。 522 | * [step](https://github.com/creationix/step/):一款可以使逻辑执行更简单的异步控制流库。 523 | * [contra](https://github.com/bevacqua/contra/):函数式风格实现的异步流控制。 524 | * [Bluebird](https://github.com/petkaantonov/bluebird/):功能齐全的 promoise 库,专注于功能革新和性能提升。 525 | * [when](https://github.com/cujojs/when):快速可靠的、Promises/A+ 规范的 when() 实现,而且拥有其它异步操作的优秀特性。 526 | * [ObjectEventTarget](https://github.com/gartz/ObjectEventTarget):为普通对象添加事件监听原型(就如浏览器 DOMElement 的 EventTarget 一样)。 527 | * [sporadic](https://github.com/marcoonroad/sporadic):位于 promise 顶部的组合并发抽象(就像流、协程和类似 Go channels 一样),支持 Node.js 和浏览器引擎。 528 | 529 | ## 路由 530 | 531 | * [director](https://github.com/flatiron/director):一个小巧的、与 URL 同构的路由。 532 | * [page.js](https://github.com/visionmedia/page.js):受 Express router 启发的小型客户端路由器(约为1200字节)。 533 | * [pathjs](https://github.com/mtrpcic/pathjs):简单、轻量的 web 路由。 534 | * [crossroads](https://github.com/millermedeiros/crossroads.js):JavaScript 路由。 535 | * [davis.js](https://github.com/olivernn/davis.js):基于 pushState 可降级 RESTful 风格的 JavaScript 路由。 536 | * [navaid](https://github.com/lukeed/navaid):一款浏览器端的导航辅助系统(也可以成为路由),体积才 850 字节! 537 | 538 | ## 安全性 539 | 540 | * [DOMPurify](https://github.com/cure53/DOMPurify):针对 HTML、MathML 和 SVG 的仅支持 DOM 的超快速、高容错的 XSS 过滤器。 541 | * [js-xss](https://github.com/leizongmin/js-xss):通过白名单配置,即可过滤不信任的 HTML(防止 XSS 攻击)。 542 | * [xss-filters](https://github.com/yahoo/xss-filters):Yahoo 出品的安全 XSS 过滤器。 543 | 544 | ## 日志 545 | 546 | * [log](https://github.com/adamschwartz/log):带样式的 Console.log。 547 | * [Conzole](https://github.com/Oaxoa/Conzole):对 JavaScript 原生 console 对象方法和功能进行封装的 debug 面板,并将面板显示在页面内。 548 | * [console.log-wrapper](https://github.com/patik/console.log-wrapper):将日志清晰地记录到 console,兼容所有浏览器。 549 | * [loglevel](https://github.com/pimterry/loglevel):最轻量的 JavaScript 日志记录工具库,向封装后的 console.log 方法增加可靠的日志等级。 550 | * [minilog](http://mixu.net/minilog/):轻量的、流式 API 显示的、可用于客户端和服务器端的日志记录库。 551 | * [storyboard](http://guigrpa.github.io/storyboard/):通用日志库 + Chrome 扩展。提供一个单一入口查看包含客户端和服务端的任务触发日志。 552 | 553 | ## 正则表达式 554 | 555 | * [RegEx101](https://regex101.com/#javascript):在线的 JavaScript 正则表达式测试器和调试器。同时也支持 Python、PHP 和 PCRE。 556 | * [RegExr](http://regexr.com/):用于创建、测试和学习正则表达式的 HTML/JS 工具。 557 | 558 | ## 语音命令 559 | 560 | * [annyang](https://github.com/TalAter/annyang):向网站添加语音命令的语音识别库。 561 | * [voix.js](https://github.com/pazguille/voix):向网站、app 或游戏添加语音命令的 JavaScript 库。 562 | 563 | ## API 564 | 565 | * [axios](https://github.com/axios/axios):基于 Promise 的 HTTP 客户端,适用于 Node.js 和 浏览器。 566 | * [bottleneck](https://github.com/SGrondin/bottleneck):强大的速度限制器,使调节流量变得更容易。 567 | * [oauth-signature-js](https://github.com/bettiolo/oauth-signature-js):适用于 node 和 浏览器的 OAuth 1.0a 签名生成器。 568 | * [amygdala](https://github.com/lincolnloop/amygdala):为 Web 应用提供 RESTful HTTP 客户端解决方案。 569 | * [jquery.rest](https://github.com/jpillora/jquery.rest):一个让 RESTful API 更易用的 jQuery 插件。 570 | * [Rails Ranger](https://github.com/victor-am/rails-ranger):为 Ruby Tails 接口设计的严格的 REST 客户端。 571 | * [wretch](https://github.com/elbywan/wretch):一款小巧的直觉语法系 fetch 功能封装包。 572 | * [Bearer.sh](https://github.com/Bearer/bearer-js):支持 OAuth / API Key / Basic 等协议的全能型 API 客户端。`(已停止维护——译者注)` 573 | * [FarFetch](https://github.com/WebsiteBeaver/far-fetch):简单易用的现代 Fetch 接口封装,简化了文件上传。 574 | * [Optic](https://github.com/opticdev/optic):Optic 用于对 API 自动测试和文档生成。 575 | * [SWR](https://github.com/vercel/swr):用于远端数据拉取的 React Hooks 库。 576 | 577 | ## 流媒体 578 | 579 | * [Tailor](https://github.com/zalando/tailor):适用于前端微服务的流媒体布局服务,灵感来自 Facebook BigPipe。 580 | 581 | ## 视觉检测 582 | 583 | * [tracking.js](https://github.com/eduardolundgren/tracking.js):在 web 上实现计算视觉的一种现代方法。 584 | * [ocrad.js](https://github.com/antimatter15/ocrad.js):基于 Emscripten 的 JavaScript OCR 实现。 585 | 586 | ## 机器学习 587 | 588 | * [ConvNetJS](https://github.com/karpathy/convnetjs):JavaScript 深度学习。在浏览器环境训练卷积神经网络(或者普通神经网络)。 589 | * [DN2A](https://github.com/dn2a/dn2a-javascript):数字神经网络架构。 590 | * [Brain.js](https://github.com/harthur/brain):JavaScript 神经网络。 591 | * [Mind.js](https://github.com/stevenmiller888/mind):一款灵活的神经网络库。 592 | * [Synaptic.js](https://github.com/cazala/synaptic):适用于 Node.js 和浏览器的无架构神经网络库。 593 | * [TensorFlow.js](https://js.tensorflow.org):一款用于在 浏览器和 Node.js 中训练和部署 ML 模型的 JavaScript 库。 594 | * [ml5.js](https://ml5js.org):友好的 Web 端机器学习库。 595 | * [Synapses](https://github.com/mrdimosthenis/Synapses):轻量级跨平台神经网络库。 596 | 597 | ## 浏览器检测 598 | 599 | * [bowser](https://github.com/ded/bowser):一个浏览器检测器,特点是小巧快速且 API 丰富。 600 | 601 | ## 基准测试 602 | 603 | * [benchmark.js](https://github.com/bestiejs/benchmark.js):jsPerf.com 使用的基准测试库。 604 | * [matcha](https://github.com/logicalparadox/matcha):一款咖啡因驱动的基准测试简单实现。 605 | 606 | ## UI 607 | 608 | ## 代码高亮 609 | 610 | * [Highlight.js](https://github.com/isagalaev/highlight.js):JavaScript 语法高亮器。 611 | * [PrismJS](https://github.com/PrismJS/prism):轻量、健壮和优雅的语法高亮器。 612 | 613 | ## 加载状态 614 | 615 | 指示加载状态的库。 616 | 617 | * [Mprogress.js](https://github.com/lightningtgc/MProgress.js):谷歌 Material 风格的线性进度条。 618 | * [NProgress](http://ricostacruz.com/nprogress/):在 Ajax'y 应用显示细长型进度条。 619 | * [Spin.js](https://github.com/fgnass/spin.js):一个旋转进度指示器。 620 | * [progress.js](https://github.com/usablica/progress.js):为页面中的任何对象创建和管理进度条。 621 | * [progressbar.js](https://github.com/kimmobrunfeldt/progressbar.js):基于 SVG path 动画,漂亮、响应式的进度条。 622 | * [pace](https://github.com/HubSpot/pace):自动向你的网站添加一个进度条。 623 | * [topbar](https://github.com/buunguyen/topbar):小巧漂亮的、与网站同宽的进度指示器。 624 | * [nanobar](https://github.com/jacoborus/nanobar):非常轻量的进度条,不依赖 jQuery。 625 | * [PageLoadingEffects](https://github.com/codrops/PageLoadingEffects):使用 SVG 动画展现新内容的现代方式。 626 | * [SpinKit](https://github.com/tobiasahlin/SpinKit):CSS 加载指示器动画集合。 627 | * [Ladda](https://github.com/hakimel/Ladda):内置在按钮的加载指示器。 628 | * [css-loaders](https://github.com/lukehaas/css-loaders):CSS 旋转加载指示器动画集合。 629 | 630 | 除了上述这些库,还有 [Codepen](http://codepen.io/collection/HtAne/) 珍藏,另外还有 [Ajaxload](http://www.ajaxload.info/),[Preloaders](http://preloaders.net/) 和 [CSSLoad](http://cssload.net/) 这些生成器。 631 | 632 | ## 验证 633 | 634 | * [Parsley.js](https://github.com/guillaumepotier/Parsley.js):一行 JavaScript 代码都不用写就可以在前端验证表单。 635 | * [jquery-validation](https://github.com/jzaefferer/jquery-validation):jQuery 验证插件。 636 | * [validator.js](https://github.com/chriso/validator.js):字符串验证和过滤(清理用户输入中的有害或危险字符)。 637 | * [validate.js](https://github.com/rickharrison/validate.js):受 CodeIgniter 启发的轻量表单验证 JavaScript 库。 638 | * [validatr](https://github.com/jaymorrow/validatr/):跨浏览器的 HTML5 表单验证库。 639 | * [FormValidation](http://formvalidation.io/):jQuery 最好的表单验证插件。曾用名 BootstrapValidator. 640 | * [is.js](https://github.com/arasatasaygin/is.js):用于类型、正则表达式、是否存在、时间等检查。 641 | * [FieldVal](https://github.com/FieldVal/fieldval-js):多用途验证库。同时支持同步和异步验证。 642 | * [Funval](https://github.com/neuledge/funval):函数接口式数据验证(支持 TypeScript)。 643 | 644 | ## 键盘封装器 645 | 646 | * [mousetrap](https://github.com/ccampbell/mousetrap):处理键盘快捷键的简单 JavaScript 库。 647 | * [keymaster](https://github.com/madrobby/keymaster):定义和调度键盘快捷键的小型库。 648 | * [Keypress](https://github.com/dmauro/Keypress):键入捕捉工具库,任何键都可以成为一个修饰健。 649 | * [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS):一个用于绑定组合键的 JavaScript 库,让你无痛解决快捷键和组合键冲突。 650 | * [jquery.hotkeys](https://github.com/jeresig/jquery.hotkeys):jQuery Hotkeys 能让你在代码任何的地方监听键盘事件,并几乎支持所有按键组合。 651 | * [jwerty](https://github.com/keithamus/jwerty):令人惊叹的键盘事件处理库。 652 | 653 | ## 导览与指南 654 | 655 | * [intro.js](https://github.com/usablica/intro.js):一款用于网站项目新特性介绍和逐步导览库。 656 | * [shepherd](https://github.com/HubSpot/shepherd):通过引导让用户浏览你的应用程序。 657 | * [bootstrap-tour](https://github.com/sorich87/bootstrap-tour):应用 Twitter Bootstrap 气泡对产品进行快速简单的引导。 658 | * [tourist](https://github.com/easelinc/tourist):简单、灵活的应用引导库。 659 | * [chardin.js](https://github.com/heelhook/chardin.js):简单的应用遮罩层引号库。 660 | * [pageguide](https://github.com/tracelytics/pageguide):使用 jQuery 和 CSS3 的 web 页面元素交互引导库。 661 | * [hopscotch](https://github.com/linkedin/hopscotch):让开发者更容易向其产品页面添加引导的框架。 662 | * [joyride](https://github.com/zurb/joyride):基于 jQuery 的功能引导介绍插件。 663 | * [focusable](https://github.com/zzarcon/focusable):通过向页面其余部分添加遮罩层,使焦点聚集在特定 DOM 元素。 664 | * [driver.js](https://github.com/kamranahmedse/driver.js):用于聚焦用户注意力的强大却轻量的原生 JavaScript 引擎。 665 | 666 | ## 通知 667 | 668 | * [iziToast](https://github.com/dolce/iziToast):优雅、响应式、灵活且轻量的零依赖通知插件。 669 | * [messenger](https://github.com/HubSpot/messenger):为应用添加 Growl-style 弹框和信息(Crowl 是 Mac OS X 下的一个通知系统)。 670 | * [noty](https://github.com/needim/noty):jQuery 通知插件。 671 | * [pnotify](https://github.com/sciactive/pnotify):适用于 Bootstrap、jQuery UI 和 Web Notifications Draft 的 JavaScript 通知库。 672 | * [toastr](https://github.com/CodeSeven/toastr):简单的 JavaScript 吐司通知库。 673 | * [humane-js](https://github.com/wavded/humane-js):一个简单、时髦的浏览器通知系统。 674 | * [smoke.js](https://github.com/hxgf/smoke.js):与框架无关的 JavaScript 弹框系统。 675 | * [notie](https://github.com/jaredreich/notie):简单的零依赖通知器和输入框。 676 | 677 | ## 幻灯片 678 | 679 | * [Swiper](https://github.com/nolimits4web/Swiper):使用硬件加速动画的移动设备触控幻灯片框架。 680 | * [slick](https://github.com/kenwheeler/slick):(可能是)你最爱的跑马灯轮播库。 681 | * [slidesJs](http://www.slidesjs.com/):响应式的 jQuery(1.7.1+)幻灯片插件,具有触摸、 CSS3 过渡等特性。`(已停止维护——译者注)` 682 | * [FlexSlider](https://github.com/woothemes/FlexSlider):一款令人惊叹的、全响应式的 jQuery 幻灯片插件。 683 | * [unslider](https://github.com/idiot/unslider):最简单的幻灯片 jQuery 插件。 684 | * [sly](https://github.com/darsain/sly):用于单向滚动的 JavaScript 库,支持基于项目的导航。`(注:最后更新时间是 7 年前)` 685 | * [vegas](https://github.com/jaysalvat/vegas):向页面添加漂亮的全屏背景的 jQuery 插件,同时也支持幻灯片播放。 686 | * [Sequence](https://github.com/IanLunn/Sequence):用于创建响应式的幻灯片、演示、标语和其他分步导览应用的 CSS 动画框架。 687 | * [reveal.js](https://github.com/hakimel/reveal.js):用 HTML 创建漂亮演示文档控件的框架。 688 | * [impress.js](https://github.com/impress/impress.js):一款适用于现代浏览器,基于 CSS3 transforms 和 transitions 动画的演示文档框架。灵感来自 prezi.com 。 689 | * [bespoke.js](https://github.com/bespokejs/bespoke):一个超级小的(1KB min和gzip压缩),模块化的现代浏览器表示库,旨在促进一个丰富的插件生态系统。 690 | * [Strut](https://github.com/tantaman/Strut):Strut 是 Impress.js 和 Bespoke.js 演示文档编辑器。 691 | * [PhotoSwipe](https://github.com/dimsemenov/PhotoSwipe):适用于移动设备和桌面电脑的、模块化和独立框架的 JavaScript 画廊控件。 692 | * [jcSlider](https://github.com/JoanClaret/jcSlider):基于 CSS 动画实现的响应式幻灯片 jQuery 插件。 693 | * [basic-jquery-slider](https://github.com/jcobb/basic-jquery-slider):易于使用、指定主题和定制化。 694 | * [jQuery.adaptive-slider](https://github.com/creative-punch/jQuery.adaptive-slider/):带有自适应颜色标题和导航的幻灯片 jQuery 插件。 695 | * [slidr](https://github.com/bchanx/slidr):一个简单、轻量级的 JS 库,用于向页面添加幻灯片转换。无依赖关系。 696 | * [Flickity](https://github.com/metafizzy/flickity):可触摸的、响应式的和可轻弹的画廊。 697 | * [Glide.js](https://github.com/jedrzejchalubek/glidejs):响应式触摸友好型 jQuery 幻灯片。特点是小快灵。 698 | * [Embla Carousel](https://github.com/davidcetinkaya/embla-carousel):TypeScript 编写的一款可扩展的低级轮播库。 699 | 700 | ## 滑块控件 701 | 702 | * [Ion.RangeSlider](https://github.com/IonDen/ion.rangeSlider):强大的、易于自定义的范围滑块选择库,支持丰富的配置和皮肤。 703 | * [jQRangeSlider](https://github.com/ghusse/jQRangeSlider):支持日期的滑块选择库。 704 | * [noUiSlider](https://github.com/leongersen/noUiSlider):轻量无冗余的、高度定制化的滑块选择库。 705 | * [rangeslider.js](https://github.com/andreruffert/rangeslider.js):HTML5 输入框滑块补丁。 706 | 707 | ## 表单组件 708 | 709 | ### 输入 710 | 711 | * [typeahead.js](https://github.com/twitter/typeahead.js):快速、功能齐全的自动补全库。 712 | * [tag-it](https://github.com/aehlke/tag-it):处理多标签字段以及标签建议/自动补全的 jQuery UI 插件。 713 | * [At.js](https://github.com/ichord/At.js):在应用中添加类似 Github 的自动补全提示功能。 714 | * [Placeholders.js](https://github.com/jamesallardice/Placeholders.js):HTML5 placeholder 属性 JavaScript 补丁。 715 | * [fancyInput](https://github.com/yairEO/fancyInput):添加 CSS3 效果,让输入更有趣。 716 | * [jQuery-Tags-Input](https://github.com/xoxco/jQuery-Tags-Input):利用这个 jQuery 插件,可奇妙地将一个简单的文本输入转换成一个酷酷的标签列表。 717 | * [vanilla-masker](https://github.com/BankFacil/vanilla-masker):一个纯 JavaScript 实现的输入控制库。 718 | * [Ion.CheckRadio](https://github.com/IonDen/ion.checkRadio):一个为复选框和单选按钮添加样式的 jQuery 库,支持多种皮肤。 719 | * [awesomplete](https://github.com/LeaVerou/awesomplete):零依赖、超轻量、好用而且漂亮的自动补全库。 - [http://leaverou.github.io/awesomplete](http://leaverou.github.io/awesomplete) 720 | 721 | ### 日历 722 | 723 | * [pickadate.js](https://github.com/amsul/pickadate.js):对移动设备友好的、响应式的和轻量的 jQuery 日期 & 时间输入选择器。 724 | * [bootstrap-datepicker](https://github.com/eternicode/bootstrap-datepicker):基于 bootstrap 的日历选择器。 725 | * [Pikaday](https://github.com/dbushell/Pikaday):一个崭新的 JavaScript 日期选择器 —— 轻量、无依赖和模块化的 CSS。 726 | * [fullcalendar](https://github.com/fullcalendar/fullcalendar):全尺寸、支持拖放事件的 jQuery 日历插件。 727 | * [rome](https://github.com/bevacqua/rome):可定制的日期(和时间)选择器。无依赖,可选 UI。 728 | * [datedropper](https://github.com/felicegattuso/datedropper):datedropper 是一个 jQuery 插件,它提供了快速简易的方式去管理日期输入框。 729 | 730 | ### 选择器 731 | 732 | * [selectize.js](https://github.com/brianreavis/selectize.js):Selectize 是文本框和 `