JavaScript是一个仅在一周就被发明出来的小玩意, 所以,它有着有多的缺陷,即使是这样,它已经存在了20年,全世界几乎每台电脑都至少装有一个JavaScript解释器, 况且今天这个当初的小玩意的目标是编写大型的企业应用。如果你对JavaScript的理解仅限于DOM操纵,页面动画,jQuery等等, 本列表将为你展现JavaScript的更多的令人震撼的功能。
专题列表
基础
开发准备
- 安装 Node.js
- 安装 PhantomJS – 没有界面的浏览器
- 安装 Python27 (Node有些模块对Python有依赖)
- 安装 Git
- 编辑器 WebStorm 或 Visual Studio Code
推荐的书
- JavaScript DOM编程艺术
- JavaScript高级程序设计(第3版)
- JavaScript语言精粹
- Speaking JavaScript
- You Don’t Konw JS
- JavaScript权威指南
- Eloquent JavaScript
- JavaScript忍者禁术
- Superhero.js – JS学习资料集
- 阮一峰:JavaScript标准参考教程
源代码阅读
敏捷方法与工具
- 持续集成与部署
- 敏捷相关的几个概念
- Scrum: Scrum Guide
- TDD: Test-Driven Development by Example (book)
- Pair Programming
Web安全
- 跨站脚本攻击 – XSS
- 跨站请求伪造 – CSRF
- SQL注入
- 拒绝服务 – DDoS
- An Introduction to Content Security Policy
- More: Web Application Security Testing Cheat Sheet
JavaScript
核心基础语法点
核心概念
关键知识点
Other topics
- 日期和时间字符串
- 处理Cookies
- Promise
- JavaScript与有限状态机
- Fetch API
- Github: fetch polyfill
- 什么是shims和polyfills
- 严格模式
- ES5增加的新特性
- ES6基本介绍
- JavaScript的模块化进程
- Command Line API参考手册
ECMAScript 2015 (ES6)
阅读材料
- Understanding ES6 by Nicholas C.Zakas
- Exploring ES6 by Axel Rauschmayer
语法转换 ES6 to ES5
- Babel – 推荐!杀手级特性”human-readable output”
- Traceur
- Babelify: 将
babel
引入到Gulp, Grunt, npm run等构建过程 - A Brief History of ES6 Tooling
入门
- Learn ES2015
- ES6 – New features Overview & Comparison
- ES6 Overview in 350 Bullet Points
- 百度EFE:使用ES6进行开发的思考
- ES6 Features
其他
Node.js
图书
开发实践
基础知识
垃圾回收
性能对比
- Performance Comparison Between Node.js and Java EE
- Java EE threads vs Node.js – which is better for concurrent data processing operations
- What Makes Node.js Faster Than Java
最佳实践
风格指南
常用的Node Web框架
常用NPM工具模块
感兴趣的可以参考NPM中被依赖次数最多的模块列表
- JS工具函数库:lodash
- JavaScript编写同步代码辅助工具包:async
- 精简版HTTP请求客户端:request
- 配置管理工具包:nconf
- 基于生成器的控制流管理工具包:co
- 轻量级模块调试工具:debug
- 构建请求: superagent
- 辅助测试工具:Sinon.js
调试、性能与安全
开发工具和库
对于前端开发而言,如果你需要查找一些库或框架来帮你解决问题, 下面两个网站可能会帮助你选择:
借助上面的两个网站,你能够迅速的找到相关的工具。你还可以参考这篇文章来了解JavaScript必备的工具和库。 下面会继续列举一些常用的工具、库、或框架:
- 版本控制
- 自动构建
- 代码质量
- JSLint, by Dogulas Crockford
- JSHint, by Anton Kovalyov
- ESLint, by Nicholas Zaks
- JSCS
- A Comparision of JavaScript Linting Tools
- 前端工具
- 浏览器特性检测工具:Modernizr
- 高级JavaScript调试工具库:debug util
- 文档生成
- 工具库
- 提供大量工具函数:Underscore.js
- 工具函数库:Lo-Dash
- 正则表达式库:XRegExp
- 图形化解释正则表达式:RegExper
- 代码压缩丑化:UglifyJS and YUI Compressor
- 浮点数工具库:Accounting.js
- 日期时间工具库:Moment.js | Tutorial
- UI框架
- 前端框架
- 可视化库
- 模块系统和包管理器
- 模块系统
- CommonJS (Node, 同步加载)
- AMD:RequireJS(浏览器,异步加载)
- ES6 Module
- A primer on module management
- 包管理器
- npm(Node包管理器)
- Bower(主要是前端资源包)
- Browserify(将Npm包转为浏览器友好的) | Intro
- 模块系统
- 单元测试
- 代码衡量High code coverage means lower chances for your program to contains bugs.
- Istanbul – 衡量测试覆盖率
- Plato – 可视化代码复杂度
- An article on code metrics
- 实时应用
- 单页应用SAP
- 函数式JavaScript
- 模版引擎
- Handlebars | Guide
- Mustache | Guide
- Jade
- 前端资源CDN服务:
Future
很遗憾,这里只能列举一些常用的资料,但幸运的是,互联网极大便利了我们获取信息的方式, 下面几个链接或许是你正在寻找的:
- Frontend Rescue – 帮助你获取前端资源
- JSbooks – 帮助你寻找和JS相关的书
- Cooper Press 订阅