优秀JavaScript资源汇总
jopen
9年前
Awesome JavaScript
JavaScript是一个仅在一周就被发明出来的小玩意,所以,它有着有多的缺陷,即使是这样,它已经存在了20年,全世界几乎每台电脑都至少装有一个JavaScript解释器,况且今天这个当初的小玩意的目标是编写大型的企业应用。如果你对JavaScript的理解仅限于DOM操纵,页面动画,jQuery等等,本列表将为你展现JavaScript的更多的令人震撼的功能。
这份列表是一些优秀的网络资源的汇总,部分资源可能需国内或许不能访问(梯子)访问。本列表不追求大而全,而追求寻找那些对JavaScript中的某些知识点有着独到见解的网络资源,希望这些资料的汇集能够为您在寻找类似资料的时候带来一点便利。
JavaScript
Reading
- Eloquent JavaScript Online Book
- Speaking JavaScript: An In-Depth Guide for Programmers
- JavaScript高级程序设计,第三版
- JavaScript秘密花园
- JavaScript精粹
- 阮一峰: JavaScript 标准参考教程
Blogs
Abstract Syntax Tree
Basic Knowledge
- 美团:抽象语法树在JavaScript中的应用
- 轻松搞定JavaScript预解析机制
- JavaScript编译运行原理
- SlideShare: JavaScript: Abstract Syntax Tree
- SlideShare: Esprima, what is that
Tools
- SpiderMonkey: Reflect.parse - Mozilla's Parser API
- Esprima: most popular ECMAScript parser in JS
- Acorn - faster alternative ECMAScript parser in JS
- UglifyJS - has own parser with custom AST format
Esprima解析得到的抽象语法树AST遵循SpiderMonkey的API。
Helpers
- Esprima Online Parser
- ESLint - The pluggable linting utility for JavaScript and JSX
- aster - AST-based code builder
Tutorial
- Esprima tutorial
- Fun with Esprima and Static Analysis
- Parsing and modifying JavaScript code with Esprima and Scodegen
Functions
Promise
- Browser-side: bluebird, a full featured promise library
- Nodejs-side: co - he ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc)
Modular
Reading
- 从零开始实现一个JavaScript模块化加载器
- Eloquent JavaScript, chapter 10, Modules
- 详解JavaScript模块化开发
- 图文:SeaJS与RequireJS最大的区别
- 模块化开发,SeaJS简单总结
- Why AMD?
- 百度EFE:玩转AMD
- 异步模块定义AMD API中文版
- CommonJS规范 中文版
- RequireJS in Node
- 前端模块及依赖管理的新选择:Browserify
- Browserify Handbook
Tutorial
- Understanding RequireJS for Effective JavaScript Module Loading
- Writing Modular JavaScript With AMD, CommonJS & ES Harmony
ES 5
- Object.create()
- Object.defineProperty
- getter
- setter
- 严格模式
- JSON
- Array.prototype.map()
- Array.prototype.filter()
Future
React.js
- 颠覆式前端UI开发框架:React
- React.js Starter Kit
- Getting started with 非死book's React.js
- Navigating the React Ecosystem
ECMAScript 6
Reading
- Learn ES2015, a detailed overview of ECMASCRIPT 6 features
- 阮一峰: ECMAScript 6入门
- Exploring ES6: Upgrade to the next version of JavaScript
- InfoQ专栏:深入浅出ES6(更新中)
- Mozilla: ES6 in Depth
Speech
Tutorial
Libraries
- Github: es6-shim, ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines
- Babel is a JavaScript compiler.
- Github: Traceur, a JavaScript.next-to-JavaScript-of-today compiler
- Traceur REPL
- Babel REPL
- Github: grunt-traceur
- Github: gulp-traceur
- Github: broccoli-traceur
- Github: es6ify
Questions
- StackoverFlow: Differences between Babel and Traceur
ES6 Iterators/Generator
- Iterators gonna iterate
- 油Tube: ES6 Generator Tutorial
- The Basics Of ES6 Generators
- 学习ES6生成器
- Workshop: Learn Generators
- ECMAScript 2015: Generators and Iterators
ES6 Promise
Node.js
Reading
- Book: Node.js In Action
- Node.js概述
- List: Awesome nodejs
- Eleoquent JavaScript, chapter 20, Node.js
- 七天学会Node.js
- Node.js Manual & Documentation
- Node.js Process对象
- Node编码规范
- ES6 on node.js
- 美团酒店Node全栈开发实践
Node.js Tutorial
Node.js Modules
Modulefs
- fs模块简介
- How do I write files in node.js?
- Create Simple Text File in Node.js Using 'fs' Module
- Making directory along with missing parents in Node.js
Modulepath
Koajs
- Koajs - 下一代Node.js Web框架
- Koa中文文档
- PPT: Co and Koa Talk
- Getting Started With Koajs
- Koajs开发最佳实践
- Koajs中间件开发最佳实践和应用架构建议
- Why you should and shouln't use Koa
- Kick-Off-Koa - An intro to koa via a set of self-guided workshops
- Workshop - A workshop to learn the the basics of koa, Express's spiritual successor
- Koajs quick start guide
Template Language
Nunjucks
Jade
- Jade - a Node Template Engine, Language Reference
- Jade Syntax Documentation
Tools
Editor
- WebStrom
- Visual Studio Code
- Visual Studio Community
Tutorial
Build
Reading
Git/ Github/ Gitlab
If you use Github, just use Github for Windows; If you use Gitlab in a internal network, you can use TortoiseGit as a GUI tool for git.
- 油Tube: TortoiseGit Tutorial