{"id":13746721,"url":"https://github.com/wwsun/awesome-javascript","last_synced_at":"2026-02-22T21:49:02.614Z","repository":{"id":28192403,"uuid":"31694327","full_name":"wwsun/awesome-javascript","owner":"wwsun","description":"A learning guide for JavaScript programmers.","archived":false,"fork":false,"pushed_at":"2019-05-04T07:46:47.000Z","size":295,"stargazers_count":770,"open_issues_count":2,"forks_count":123,"subscribers_count":60,"default_branch":"master","last_synced_at":"2025-04-25T10:02:08.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://wwsun.github.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wwsun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-05T03:44:10.000Z","updated_at":"2025-03-13T00:28:21.000Z","dependencies_parsed_at":"2022-08-18T21:22:35.301Z","dependency_job_id":null,"html_url":"https://github.com/wwsun/awesome-javascript","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwsun%2Fawesome-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwsun%2Fawesome-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwsun%2Fawesome-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwsun%2Fawesome-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wwsun","download_url":"https://codeload.github.com/wwsun/awesome-javascript/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252989947,"owners_count":21836667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T06:00:59.741Z","updated_at":"2026-02-22T21:49:02.562Z","avatar_url":"https://github.com/wwsun.png","language":null,"readme":"**Table of Contents**\n\n- [Awesome JavaScript](#awesome-javascript)\n  - [专题列表](#%E4%B8%93%E9%A2%98%E5%88%97%E8%A1%A8)\n  - [基础](#%E5%9F%BA%E7%A1%80)\n    - [开发准备](#%E5%BC%80%E5%8F%91%E5%87%86%E5%A4%87)\n    - [推荐的书](#%E6%8E%A8%E8%8D%90%E7%9A%84%E4%B9%A6)\n    - [源代码阅读](#%E6%BA%90%E4%BB%A3%E7%A0%81%E9%98%85%E8%AF%BB)\n    - [敏捷方法与工具](#%E6%95%8F%E6%8D%B7%E6%96%B9%E6%B3%95%E4%B8%8E%E5%B7%A5%E5%85%B7)\n    - [JavaScript](#javascript)\n    - [ES6](#es6)\n  - [Node.js](#nodejs)\n    - [图书](#%E5%9B%BE%E4%B9%A6)\n    - [最佳实践](#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)\n    - [风格指南](#%E9%A3%8E%E6%A0%BC%E6%8C%87%E5%8D%97)\n    - [常用的Node Web框架](#%E5%B8%B8%E7%94%A8%E7%9A%84node-web%E6%A1%86%E6%9E%B6)\n    - [常用NPM工具模块](#%E5%B8%B8%E7%94%A8npm%E5%B7%A5%E5%85%B7%E6%A8%A1%E5%9D%97)\n  - [开发工具和库](#%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E5%92%8C%E5%BA%93)\n  - [Future](#future)\n\n# Awesome JavaScript\n\n[JavaScript](http://javascript.crockford.com/zh/javascript.html)是一个仅在一周就被发明出来的小玩意，\n所以，它有着有多的缺陷，即使是这样，它已经存在了20年，全世界几乎每台电脑都至少装有一个JavaScript解释器，\n况且今天这个当初的小玩意的目标是编写大型的企业应用。如果你对JavaScript的理解仅限于DOM操纵，页面动画，jQuery等等，\n本列表将为你展现JavaScript的更多的令人震撼的功能。\n\n## 专题列表\n\n- [React相关资源](./sections/React/)\n- [AngularJS相关资源](./sections/Angular/)\n- [JavaScript语法解析](./sections/Ast/)\n\n## 基础\n\n### 开发准备\n\n1. 安装 [Node.js](https://nodejs.org/en/)\n2. 安装 [PhantomJS - 没有界面的浏览器](http://phantomjs.org/)\n3. 安装 [Python27](https://www.python.org/downloads/) (Node有些模块对Python有依赖)\n4. 安装 [Git](https://git-scm.com/)\n5. 编辑器 [WebStorm](https://www.jetbrains.com/webstorm/) 或 [Visual Studio Code](https://code.visualstudio.com/)\n\n### 推荐的书\n\n- [JavaScript DOM编程艺术](http://www.ituring.com.cn/book/42)\n- [JavaScript高级程序设计（第3版）](http://book.douban.com/subject/10546125/)\n- [JavaScript语言精粹](http://book.douban.com/subject/11874748/)\n- [Speaking JavaScript](http://speakingjs.com/es5/index.html)\n- [You Don't Konw JS](https://github.com/getify/You-Dont-Know-JS)\n- JavaScript权威指南\n- Eloquent JavaScript\n- JavaScript忍者禁术\n- [Superhero.js - JS学习资料集](http://superherojs.com/)\n- [阮一峰：JavaScript标准参考教程](http://javascript.ruanyifeng.com/)\n\n### 源代码阅读\n\n- [Github: Backbone](https://github.com/jashkenas/backbone)\n- [Github: Underscore](https://github.com/jashkenas/underscore)\n- [Github: Immutable](https://facebook.github.io/immutable-js/)\n\n### 敏捷方法与工具\n\n1. 持续集成与部署\n\t- [Continuous Delivery vs Continuous Deployment vs Continuous Integration - Wait huh?](http://blog.assembla.com/assemblablog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx)\n\t- [Jenkins：开源的可扩展持续集成服务器](http://jenkins-ci.org/)\n\t- [CircleCI：Ship better code, faster.](https://circleci.com/)\n\t- [Travis CI: 一个针对开源社区的持续集成托管服务](https://travis-ci.org/)\n\n1. 敏捷相关的几个概念\n\t- Scrum: [Scrum Guide](http://www.scrumguides.org/)\n\t- TDD: Test-Driven Development by Example (book)\n\t- Pair Programming\n\n### Web安全\n\n1. [跨站脚本攻击 - XSS](http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html)\n1. [跨站请求伪造 - CSRF](https://www.wikiwand.com/zh-cn/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0)\n1. [SQL注入](https://technet.microsoft.com/zh-cn/library/ms161953.aspx)\n1. [拒绝服务 - DDoS](https://www.wikiwand.com/zh-cn/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A)\n1. [An Introduction to Content Security Policy](http://www.html5rocks.com/en/tutorials/security/content-security-policy)\n1. More: [Web Application Security Testing Cheat Sheet](https://www.owasp.org/index.php/Web_Application_Security_Testing_Cheat_Sheet)\n1. [JavaScript Beginners: Friendly Intro \u0026 Exercises](https://snipcart.com/blog/javascript-beginner-intro-exercises)\n\n### JavaScript\n\n核心基础语法点\n\n- [this](http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/index.html)\n- [闭包](http://wwsun.github.io/posts/javascript-closure.html)\n\n核心概念\n\n1. [Functional Programming 函数式编程]()\n1. [Prototyped-based OOP 基于原型的面向对象编程]()\n1. [Async/Concurrent Programming 异步/并发编程]()\n\n关键知识点\n\n- [正则表达式](http://qntm.org/files/re/re.html)\n\nOther topics\n\n1. [日期和时间字符串](https://msdn.microsoft.com/library/ff743760)\n1. [处理Cookies](http://www.sitepoint.com/how-to-deal-with-cookies-in-javascript/)\n1. [Promise](http://javascript.ruanyifeng.com/advanced/promise.html)\n\t- Github: [bluebird](https://github.com/petkaantonov/bluebird)\n\t- Github: [q](https://github.com/kriskowal/q)\n1. [JavaScript与有限状态机](http://javascript.ruanyifeng.com/advanced/fsm.html)\n1. [Fetch API](http://www.sitepoint.com/introduction-to-the-fetch-api/)\n\t- Github: [fetch polyfill](https://github.com/github/fetch)\n1. [什么是shims和polyfills](http://speakingjs.com/es5/ch30.html#shim_vs_polyfill)\n1. [严格模式](http://javascript.ruanyifeng.com/advanced/strict.html)\n1. [ES5增加的新特性](http://speakingjs.com/es5/ch25.html)\n1. [ES6基本介绍](http://javascript.ruanyifeng.com/advanced/ecmascript6.html)\n1. [JavaScript的模块化进程](http://www.cnblogs.com/lvdabao/p/js-modules-develop.html)\n1. [Command Line API参考手册](https://developers.google.com/web/tools/chrome-devtools/debug/command-line/command-line-reference?hl=en)\n\n### ECMAScript 2015 (ES6)\n\n阅读材料\n\n1. [Understanding ES6](https://leanpub.com/understandinges6/read/) by Nicholas C.Zakas\n1. [Exploring ES6](http://exploringjs.com/es6/) by Axel Rauschmayer\n\n语法转换 ES6 to ES5\n\n1. [Babel](https://babeljs.io/) - 推荐！杀手级特性\"human-readable output\"\n1. [Traceur](https://github.com/google/traceur-compiler)\n1. [Babelify](https://github.com/babel/babelify): 将`babel`引入到Gulp, Grunt, npm run等构建过程\n1. [A Brief History of ES6 Tooling](https://ponyfoo.com/articles/a-brief-history-of-es6-tooling)\n\n入门\n\n1. [Learn ES2015](https://babeljs.io/docs/learn-es2015/)\n1. [ES6 - New features Overview \u0026 Comparison](http://es6-features.org/)\n1. [ES6 Overview in 350 Bullet Points](https://ponyfoo.com/articles/es6)\n1. 百度EFE：[使用ES6进行开发的思考](http://efe.baidu.com/blog/es6-develop-overview/)\n1. [ES6 Features](http://www.sitepoint.com/20-docs-guides-front-end-developers/)\n\n其他\n\n1. [ES5/ES6 compatibility table](http://kangax.github.io/compat-table/es6/)\n1. [ES6 Cheatsheet](http://help.wtf/es6)\n\n## Node.js\n\n### 图书\n\n1. [Node.js In Action](http://book.douban.com/subject/25870705/)\n1. [深入浅出Node.js](http://book.douban.com/subject/25768396/)\n\n### 开发实践\n\n基础知识\n\n1. [NODE_PATH](http://docs.spmjs.org/doc/environment#设置-path-和-node-path)\n\n垃圾回收\n\n1. [A tour of V8: Garbage Collection](http://www.jayconrod.com/posts/55/a-tour-of-v8-garbage-collection) | [CHN](http://newhtml.net/v8-garbage-collection/)\n1. [Top Node.js metrics to watch](https://www.oreilly.com/ideas/top-nodejs-metrics-to-watch)\n1. [Goole V8的垃圾回收](http://www.infoq.com/cn/news/2015/08/Google-V8)\n1. [浅谈V8引擎中的垃圾回首机制](http://segmentfault.com/a/1190000000440270)\n\n性能对比\n\n1. [Performance Comparison Between Node.js and Java EE](https://dzone.com/articles/performance-comparison-between)\n1. [Java EE threads vs Node.js - which is better for concurrent data processing operations](http://bijoor.me/2013/06/09/java-ee-threads-vs-node-js-which-is-better-for-concurrent-data-processing-operations/)\n1. [What Makes Node.js Faster Than Java](https://strongloop.com/strongblog/node-js-is-faster-than-java/)\n\n### 最佳实践\n\n1. [Node.js最佳实践：第一部分](http://wwsun.me/posts/node-best-practices.html)\n2. [Node.js最佳实践：第二部分](http://wwsun.github.io/posts/node-best-practices-2.html)\n\n### 风格指南\n\n1. [Node.js风格指南（中文）](https://github.com/wwsun/node-style-guide)\n\n### 常用的Node Web框架\n\n1. 传统的Node框架：[Express](http://expressjs.com/)\n2. 下一代Node.js框架：[Koa](http://koajs.com/)\n3. 专注于构建可重用的应用逻辑：[Hapi](http://hapijs.com/)\n4. [其他Node框架](http://nodeframework.com/index.html#home)\n\n### 常用NPM工具模块\n\n\u003e 感兴趣的可以参考NPM中被[依赖次数最多的模块](https://www.npmjs.com/browse/depended)列表\n\n1. JS工具函数库：[lodash](https://lodash.com/)\n1. JavaScript编写同步代码辅助工具包：[async](https://github.com/caolan/async)\n1. 精简版HTTP请求客户端：[request](https://github.com/request/request)\n1. 配置管理工具包：[nconf](https://github.com/indexzero/nconf)\n1. 基于生成器的控制流管理工具包：[co](https://github.com/tj/co)\n1. 轻量级模块调试工具：[debug](https://www.npmjs.com/package/debug)\n1. 构建请求: [superagent](https://www.npmjs.com/package/superagent)\n1. 辅助测试工具：[Sinon.js](http://sinonjs.org/)\n\n### 调试、性能与安全\n\n1. [Node.js的代码调试和性能调优](http://www.barretlee.com/blog/2015/10/07/debug-nodejs-in-command-line/)\n1. [Node.js安全清单](http://segmentfault.com/a/1190000003860400)\n1. [Debug with Source Maps](http://blog.getsentry.com/2015/10/29/debuggable-javascript-with-source-maps.html)\n1. 雅虎: [网站性能优化建议](https://developer.yahoo.com/performance/rules.html)\n\n## 开发工具和库\n\n对于前端开发而言，如果你需要查找一些库或框架来帮你解决问题，\n下面两个网站可能会帮助你选择：\n\n1. [JavaScripting.com](http://www.javascripting.com/)\n1. [JavaScriptOO](http://www.javascriptoo.com/)\n\n借助上面的两个网站，你能够迅速的找到相关的工具。你还可以参考这篇文章来了解[JavaScript必备的工具和库](http://www.sitepoint.com/essential-tools-libraries-modern-javascript-developers/)。\n下面会继续列举一些常用的工具、库、或框架：\n\n1. 版本控制\n\n\t- [Git](https://git-scm.com/) | [try git](https://try.github.io/levels/1/challenges/1)\n\t- [Github](https://github.com/)\n\t- [SVN](https://subversion.apache.org/)\n\t- [Read more...](http://www.sitepoint.com/version-control-software-2014-what-options/)\n\n1. 自动构建\n\n\t- [Gulp](http://gulpjs.com/) | [Introduction](http://www.sitepoint.com/introduction-gulp-js/)\n\t- [Grunt](http://gruntjs.com/) | [Introduction](http://www.sitepoint.com/introduction-grunt/)\n\n1. 代码质量\n\n\t- [JSLint](http://jslint.com/), by Dogulas Crockford\n\t- [JSHint](http://jshint.com/), by Anton Kovalyov\n\t- [ESLint](http://eslint.org/), by Nicholas Zaks\n\t- [JSCS](http://jscs.info/)\n\t- [A Comparision of JavaScript Linting Tools](http://www.sitepoint.com/comparison-javascript-linting-tools/)\n\n1. 前端工具\n\n\t- 浏览器特性检测工具：[Modernizr](https://modernizr.com/)\n\t- 高级JavaScript调试工具库：[debug util](https://github.com/amasad/debug_utils)\n\n1. 文档生成\n\t\n\t- [JSDoc](http://usejsdoc.org/)\n\t- [YUIDoc](http://yui.github.io/yuidoc/)\n\t- [Read more...](http://www.sitepoint.com/products-documentation-good-enough/)\n\n1. 工具库\n\n\t- 提供大量工具函数：[Underscore.js](http://underscorejs.org/)\n\t- 工具函数库：[Lo-Dash](http://lodash.com/)\n\t- 正则表达式库：[XRegExp](http://xregexp.com/)\n\t- 图形化解释正则表达式：[RegExper](http://www.sitepoint.com/regexper-regular-expressions-explained/)\n\t- 代码压缩丑化：[UglifyJS](http://lisperator.net/uglifyjs/) and [YUI Compressor](http://yui.github.io/yuicompressor/)\n\t- 浮点数工具库：[Accounting.js](http://openexchangerates.github.io/accounting.js/)\n\t- 日期时间工具库：[Moment.js](http://momentjs.com/) | [Tutorial](http://www.sitepoint.com/managing-dates-times-using-moment-js/)\n\n1. UI框架\n\n\t- [Bootstrap - 最常用的UI框架](http://getbootstrap.com/)\n\t- [Semantic UI - Human-friendly](http://semantic-ui.com/)\n\t- [Foundation - Most advanced responsive FE framework](http://foundation.zurb.com/)\n\n1. 前端框架\n\n\t- [React - UI层库，组件驱动开发](http://facebook.github.io/react/)\n\t- [AngularJS - MVVM](https://angularjs.org/)\n\t- [Polymer - web components](https://www.polymer-project.org/1.0/)\n\t- [Vue.js](http://cn.vuejs.org/)\n\n1. 可视化库\n\n\t- [D3.js - Data Driven Documents](http://d3js.org/)\n\t- [ECharts - 百度可视化工具包](http://echarts.baidu.com/)\n\t- [HighCharts - 注重交互](http://www.highcharts.com/)\n\t- [Chart.js - Simple, clean and engaging charts](http://www.chartjs.org/)\n\t- [Angular Chart - AngularJS指令封装版Chart.js](http://jtblin.github.io/angular-chart.js/)\n\t- [Epoch - for real-time visualizations](https://fastly.github.io/epoch/)\n\n1. 模块系统和包管理器\n\n\t- 模块系统\n\t\t- CommonJS (Node, 同步加载)\n\t\t- AMD：[RequireJS](http://requirejs.org/)(浏览器，异步加载)\n\t\t- [ES6 Module](www.2ality.com/2014/09/es6-modules-final.html)\n\t\t- [A primer on module management](http://www.sitepoint.com/understanding-requirejs-for-effective-javascript-module-loading/)\n\t- 包管理器\n\t\t- [npm](https://npmjs.org/)(Node包管理器)\n\t\t- [Bower](http://bower.io/)（主要是前端资源包）\n\t\t- [Browserify](http://browserify.org/)(将Npm包转为浏览器友好的) | [Intro](http://www.sitepoint.com/getting-started-browserify/)\n\n1. 单元测试\n\n\t- [Mocha](http://mochajs.org/)\n\t- [Jasmine](http://pivotal.github.io/jasmine/) | [Intro](http://www.sitepoint.com/testing-javascript-jasmine-travis-karma/)\n\t- [QUnit](https://qunitjs.com/) | [Intro](http://www.sitepoint.com/getting-started-qunit/)\n\t- Tape\n\t- Jest - React组件单元测试\n\t- Karma\n\t- 跨平台多浏览器测试\n\t\t- [BrowserStack](https://www.browserstack.com/)\n\t\t- [Sauce Labs](https://saucelabs.com/) | [Guide](http://www.sitepoint.com/testing-in-the-cloud-using-saucelabs/)\n\n1. 代码衡量\n\n\tHigh code coverage means lower chances for your program to contains bugs.\n\n\t- [Istanbul](http://gotwarlost.github.io/istanbul/) - 衡量测试覆盖率\n\t- [Plato](https://github.com/es-analysis/plato) - 可视化代码复杂度\n\t- [An article on code metrics](http://www.sitepoint.com/code-metrics-and-you/)\n\n1. 实时应用\n\t\n\t- [Meteor](https://www.meteor.com/)\n\t- [SocketStream](http://www.socketstream.org/)\n\t- [Socket.io](http://socket.io/)\n\t- [构建基于Node.js的聊天室](http://www.sitepoint.com/build-node-js-powered-chatroom-web-app-getting-started/)\n\n1. 单页应用SAP\n\t\n\t- [AngularJS](https://angularjs.org/)\n\t- [Backbone](http://documentcloud.github.io/backbone/)\n\t- [Ember](http://emberjs.com/)\n\t- [React](http://facebook.github.io/react/)\n\t- [KnockoutJS](http://knockoutjs.com/)\n\t\n1. 函数式JavaScript\n\n\t- [UnderscoreJS](http://underscorejs.org/)\n\t- [Lodash](https://lodash.com/)\n\t- [An introduction to functional programming in JavaScript](http://www.sitepoint.com/introduction-functional-javascript/)\n\t\n1. 模版引擎\n\n\t- [Handlebars](http://handlebarsjs.com/) | [Guide](http://www.sitepoint.com/a-beginners-guide-to-handlebars/)\n\t- [Mustache](http://mustache.github.io/) | [Guide](http://www.sitepoint.com/creating-html-templates-with-mustachejs/)\n\t- [Jade](http://jade-lang.com/)\n\n1. 前端资源CDN服务：\n\t- [BootCDN](http://www.bootcdn.cn/)\n\t- [360前端资源CDN服务](http://libs.useso.com/)\n\t- [七牛前端资源CDN服务](http://www.staticfile.org/)\n\n## Future\n\n很遗憾，这里只能列举一些常用的资料，但幸运的是，互联网极大便利了我们获取信息的方式，\n下面几个链接或许是你正在寻找的：\n\n1. [Frontend Rescue](https://uptodate.frontendrescue.org/) - 帮助你获取前端资源\n1. [JSbooks](http://jsbooks.revolunet.com/) - 帮助你寻找和JS相关的书\n1. [Cooper Press 订阅](https://cooperpress.com/)\n\n### Other links\n\n1. [JavaScript Training Sucks](https://medium.com/javascript-scene/javascript-training-sucks-284b53666245#.cbq5ijonh)\n1. [The Two Pillars of JavaScript: part one - how to escape the 7th circle of hell](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3#.47bfua546)\n","funding_links":[],"categories":["Others","3. 浏览器扩展(Chrome Extensions) ##","Other Lists","Other Domains in CS","6. 在线工具"],"sub_categories":["13.20 视差滚动(Parallax Scrolling) ###","TeX Lists","24.3 Web Sockets"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwwsun%2Fawesome-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwwsun%2Fawesome-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwwsun%2Fawesome-javascript/lists"}