Awesome JavaScript

如果你对JavaScript的理解仅限于DOM操纵,页面动画等等,本列表将为你展现JavaScript更多的功能。本列表是一些优秀的网络资源的汇总,部分资料需要翻墙访问。

JavaScript

Reading

  1. Eloquent JavaScript Online Book
  2. Speaking JavaScript: An In-Depth Guide for Programmers
  3. JavaScript高级程序设计,第三版
  4. JavaScript秘密花园
  5. 阮一峰: JavaScript 标准参考教程
  6. 关于一些前端JS框架的源码研究

Blogs

  1. @ality - JavaScript and more
  2. Blog: Ariya Hidayat

Abstract Syntax Tree

Basic Knowledge

  1. 美团:抽象语法树在JavaScript中的应用
  2. 轻松搞定JavaScript预解析机制
  3. JavaScript编译运行原理
  4. SlideShare: JavaScript: Abstract Syntax Tree
  5. SlideShare: Esprima, what is that

Tools

  1. SpiderMonkey: Reflect.parse - Mozilla's Parser API
  2. Esprima: most popular ECMAScript parser in JS
  3. Acorn - faster alternative ECMAScript parser in JS
  4. UglifyJS - has own parser with custom AST format

Esprima解析得到的抽象语法树AST遵循SpiderMonkey的API

Helpers

  1. Esprima Online Parser
  2. ESLint - The pluggable linting utility for JavaScript and JSX
  3. aster - AST-based code builder

Tutorial

  1. Esprima tutorial
  2. Fun with Esprima and Static Analysis
  3. Parsing and modifying JavaScript code with Esprima and Scodegen

Functions

  1. JavaScript Immediately-Invoked Function Expression

Promise

  1. Browser-side: bluebird, a full featured promise library
  2. Nodejs-side: co - he ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc)

Modular

Reading

  1. 从零开始实现一个JavaScript模块化加载器
  2. Eloquent JavaScript, chapter 10, Modules
  3. 详解JavaScript模块化开发
  4. 图文:SeaJS与RequireJS最大的区别
  5. 模块化开发,SeaJS简单总结
  6. Why AMD?
  7. 百度EFE:玩转AMD
  8. 异步模块定义AMD API中文版
  9. CommonJS规范 中文版
  10. RequireJS in Node

Tutorial

  1. Understanding RequireJS for Effective JavaScript Module Loading
  2. Writing Modular JavaScript With AMD, CommonJS & ES Harmony

ES 5

  1. Object.create()
  2. Object.defineProperty
  3. getter
  4. setter
  5. 严格模式
  6. JSON
  7. Array.prototype.map()
  8. Array.prototype.filter()

Future

  1. 跟 Web Components 打个啵

ECMAScript 6

Reading

  1. Learn ES2015, a detailed overview of ECMASCRIPT 6 features
  2. 阮一峰: ECMAScript 6入门
  3. Exploring ES6: Upgrade to the next version of JavaScript
  4. InfoQ专栏:深入浅出ES6

Speech

  1. Youtube: John Paul - ES6 Right Now
  2. Youtube: PeterHallam & AlexRussell: Traceur: JS to JS compiler

Tutorial

  1. Using the ES6 transpiler Babel on Node.js
  2. Traceur, Gulp, Browserify and ES6

Libraries

  1. Github: es6-shim, ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines
  2. Babel is a JavaScript compiler.
  3. Github: Traceur, a JavaScript.next-to-JavaScript-of-today compiler
  4. Traceur REPL
  5. Babel REPL
  6. Github: grunt-traceur
  7. Github: gulp-traceur
  8. Github: broccoli-traceur
  9. Github: es6ify

Questions

  1. StackoverFlow: Differences between Babel and Traceur

ES6 Generator

  1. Youtube: ES6 Generator Tutorial
  2. The Basics Of ES6 Generators
  3. 学习ES6生成器
  4. Workshop: Learn Generators

ES6 Promise

  1. 谈谈ES6的Promise对象
  2. 异步流程控制:7 行代码学会 co 模块

Node.js

Reading

  1. Book: Node.js In Action
  2. Node.js概述
  3. Eleoquent JavaScript, chapter 20, Node.js
  4. 七天学会Node.js
  5. Node.js Manual & Documentation
  6. Node.js Process对象
  7. Node编码规范
  8. ES6 on node.js
  9. 美团酒店Node全栈开发实践

Node.js Tutorial

  1. Creating and Publishing Node.js Modules
  2. Node.js Tutorial Collection
  3. NodeSchool

Node.js Modules

Module fs

  1. fs模块简介
  2. How do I write files in node.js?
  3. Create Simple Text File in Node.js Using 'fs' Module

Module path

  1. path模块简介

Koajs

  1. Koajs - 下一代Node.js Web框架
  2. Koa中文文档
  3. PPT: Co and Koa Talk
  4. Getting Started With Koajs
  5. Koajs开发最佳实践
  6. Koajs中间件开发最佳实践和应用架构建议
  7. Why you should and shouln't use Koa
  8. Kick-Off-Koa - An intro to koa via a set of self-guided workshops
  9. Workshop - A workshop to learn the the basics of koa, Express's spiritual successor
  10. Koajs quick start guide

Tools

Editor

  1. WebStrom
  2. Visual Studio Code
  3. Visual Studio Community

Tutorial

  1. Hello Visual Studio Code (with Node.js)
  2. John Papa: Debugging with Visual Studio Code

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.

  1. Youtube: TortoiseGit Tutorial