Evan's blog Evan's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Evan Xu

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • ECMAScript 6 简介
  • let 和 const 命令
  • 变量的解构赋值
  • 字符串的扩展
  • 字符串的新增方法
  • 正则的扩展
  • 数值的扩展
  • 函数的扩展
  • 数组的扩展
  • 对象的扩展
  • 对象的新增方法
  • Symbol
  • Set 和 Map 数据结构
  • Proxy
  • Reflect
  • Promise 对象
  • Iterator 和 for-of 循环
  • Generator 函数的语法
  • Generator 函数的异步应用
  • async 函数
  • Class 的基本语法
  • Class 的继承
  • Module 的语法
  • Module 的加载实现
  • 编程风格
  • 读懂 ECMAScript 规格
  • 异步遍历器
  • ArrayBuffer
  • 最新提案
  • 装饰器
  • 函数式编程
  • Mixin
  • SIMD
  • 参考链接
    • 官方文件
    • 综合介绍
    • let 和 const
    • 解构赋值
    • 字符串
    • 正则
    • 数值
    • 数组
    • 函数
    • 对象
    • Symbol
    • Set 和 Map
    • Proxy 和 Reflect
    • Promise 对象
    • Iterator
    • Generator
    • 异步操作和 Async 函数
    • Class
    • Decorator
    • Module
    • 二进制数组
    • SIMD
    • 工具
  • 《ES6 教程》笔记
阮一峰
2020-02-09
目录

参考链接

# 参考链接

# 官方文件

  • ECMAScript® 2015 Language Specification (opens new window): ECMAScript 2015 规格
  • ECMAScript® 2016 Language Specification (opens new window): ECMAScript 2016 规格
  • ECMAScript® 2017 Language Specification (opens new window):ECMAScript 2017 规格(草案)
  • ECMAScript Current Proposals (opens new window): ECMAScript 当前的所有提案
  • ECMAScript Active Proposals (opens new window): 已经进入正式流程的提案
  • ECMAScript proposals (opens new window):从阶段 0 到阶段 4 的所有提案列表
  • TC39 meeting agendas (opens new window): TC39 委员会历年的会议记录
  • ECMAScript Daily (opens new window): TC39 委员会的动态
  • The TC39 Process (opens new window): 提案进入正式规格的流程
  • TC39: A Process Sketch, Stages 0 and 1 (opens new window): Stage 0 和 Stage 1 的含义
  • TC39 Process Sketch, Stage 2 (opens new window): Stage 2 的含义

# 综合介绍

  • Axel Rauschmayer, Exploring ES6: Upgrade to the next version of JavaScript (opens new window): ES6 的专著,本书的许多代码实例来自该书
  • Sayanee Basu, Use ECMAScript 6 Today (opens new window)
  • Ariya Hidayat, Toward Modern Web Apps with ECMAScript 6 (opens new window)
  • Dale Schouten, 10 Ecmascript-6 tricks you can perform right now (opens new window)
  • Colin Toh, Lightweight ES6 Features That Pack A Punch (opens new window): ES6 的一些“轻量级”的特性介绍
  • Domenic Denicola, ES6: The Awesome Parts (opens new window)
  • Nicholas C. Zakas, Understanding ECMAScript 6 (opens new window)
  • Justin Drake, ECMAScript 6 in Node.JS (opens new window)
  • Ryan Dao, Summary of ECMAScript 6 major features (opens new window)
  • Luke Hoban, ES6 features (opens new window): ES6 新语法点的罗列
  • Traceur-compiler, Language Features (opens new window): Traceur 文档列出的一些 ES6 例子
  • Axel Rauschmayer, ECMAScript 6: what’s next for JavaScript? (opens new window): 关于 ES6 新增语法的综合介绍,有很多例子
  • Axel Rauschmayer, Getting started with ECMAScript 6 (opens new window): ES6 语法点的综合介绍
  • Toby Ho, ES6 in io.js (opens new window)
  • Guillermo Rauch, ECMAScript 6 (opens new window)
  • Benjamin De Cock, Frontend Guidelines (opens new window): ES6 最佳实践
  • Jani Hartikainen, ES6: What are the benefits of the new features in practice? (opens new window)
  • kangax, JavaScript quiz. ES6 edition (opens new window): ES6 小测试
  • Jeremy Fairbank, HTML5DevConf ES7 and Beyond! (opens new window): ES7 新增语法点介绍
  • Timothy Gu, How to Read the ECMAScript Specification (opens new window): 如何读懂 ES6 规格

# let 和 const

  • Kyle Simpson, For and against let (opens new window): 讨论 let 命令的作用域
  • kangax, Why typeof is no longer “safe” (opens new window): 讨论在块级作用域内,let 命令的变量声明和赋值的行为
  • Axel Rauschmayer, Variables and scoping in ECMAScript 6 (opens new window): 讨论块级作用域与 let 和 const 的行为
  • Nicolas Bevacqua, ES6 Let, Const and the “Temporal Dead Zone” (TDZ) in Depth (opens new window)
  • acorn, Function statements in strict mode (opens new window): 块级作用域对严格模式的函数声明的影响
  • Axel Rauschmayer, ES proposal: global (opens new window): 顶层对象global
  • Mathias Bynens, A horrifying globalThis polyfill in universal JavaScript (opens new window):如何写 globalThis 的垫片库

# 解构赋值

  • Nick Fitzgerald, Destructuring Assignment in ECMAScript 6 (opens new window): 详细介绍解构赋值的用法
  • Nicholas C. Zakas, ECMAScript 6 destructuring gotcha (opens new window)

# 字符串

  • Nicholas C. Zakas, A critical review of ECMAScript 6 quasi-literals (opens new window)
  • Mozilla Developer Network, Template strings (opens new window)
  • Addy Osmani, Getting Literal With ES6 Template Strings (opens new window): 模板字符串的介绍
  • Blake Winton, ES6 Templates (opens new window): 模板字符串的介绍
  • Peter Jaszkowiak, How to write a template compiler in JavaScript (opens new window): 使用模板字符串,编写一个模板编译函数
  • Axel Rauschmayer, ES.stage3: string padding (opens new window)

# 正则

  • Mathias Bynens, Unicode-aware regular expressions in ES6 (opens new window): 详细介绍正则表达式的 u 修饰符
  • Axel Rauschmayer, New regular expression features in ECMAScript 6 (opens new window):ES6 正则特性的详细介绍
  • Yang Guo, RegExp lookbehind assertions (opens new window):介绍后行断言
  • Axel Rauschmayer, ES proposal: RegExp named capture groups (opens new window): 具名组匹配的介绍
  • Mathias Bynens, ECMAScript regular expressions are getting better! (opens new window): 介绍 ES2018 添加的多项正则语法

# 数值

  • Nicolas Bevacqua, ES6 Number Improvements in Depth (opens new window)
  • Axel Rauschmayer, ES proposal: arbitrary precision integers (opens new window)
  • Mathias Bynens, BigInt: arbitrary-precision integers in JavaScript (opens new window)

# 数组

  • Axel Rauschmayer, ECMAScript 6’s new array methods (opens new window): 对 ES6 新增的数组方法的全面介绍
  • TC39, Array.prototype.includes (opens new window): 数组的 includes 方法的规格
  • Axel Rauschmayer, ECMAScript 6: holes in Arrays (opens new window): 数组的空位问题

# 函数

  • Nicholas C. Zakas, Understanding ECMAScript 6 arrow functions (opens new window)
  • Jack Franklin, Real Life ES6 - Arrow Functions (opens new window)
  • Axel Rauschmayer, Handling required parameters in ECMAScript 6 (opens new window)
  • Dmitry Soshnikov, ES6 Notes: Default values of parameters (opens new window): 介绍参数的默认值
  • Ragan Wald, Destructuring and Recursion in ES6 (opens new window): rest 参数和扩展运算符的详细介绍
  • Axel Rauschmayer, The names of functions in ES6 (opens new window): 函数的 name 属性的详细介绍
  • Kyle Simpson, Arrow This (opens new window): 箭头函数并没有自己的 this
  • Derick Bailey, Do ES6 Arrow Functions Really Solve “this” In JavaScript? (opens new window):使用箭头函数处理 this 指向,必须非常小心
  • Mark McDonnell, Understanding recursion in functional JavaScript programming (opens new window): 如何自己实现尾递归优化
  • Nicholas C. Zakas, The ECMAScript 2016 change you probably don't know (opens new window): 使用参数默认值时,不能在函数内部显式开启严格模式
  • Axel Rauschmayer, ES proposal: optional catch binding (opens new window)
  • Cynthia Lee, When you should use ES6 arrow functions — and when you shouldn’t (opens new window): 讨论箭头函数的适用场合
  • Eric Elliott, What is this? (opens new window): 箭头函数内部的 this 的解释。

# 对象

  • Addy Osmani, Data-binding Revolutions with Object.observe() (opens new window): 介绍 Object.observe()的概念
  • Sella Rafaeli, Native JavaScript Data-Binding (opens new window): 如何使用 Object.observe 方法,实现数据对象与 DOM 对象的双向绑定
  • Axel Rauschmayer, __proto__ in ECMAScript 6 (opens new window)
  • Axel Rauschmayer, Enumerability in ECMAScript 6 (opens new window)
  • Axel Rauschmayer, ES proposal: Object.getOwnPropertyDescriptors() (opens new window)
  • TC39, Object.getOwnPropertyDescriptors Proposal (opens new window)
  • David Titarenco, How Spread Syntax Breaks JavaScript (opens new window): 扩展运算符的一些不合理的地方

# Symbol

  • Axel Rauschmayer, Symbols in ECMAScript 6 (opens new window): Symbol 简介
  • MDN, Symbol (opens new window): Symbol 类型的详细介绍
  • Jason Orendorff, ES6 In Depth: Symbols (opens new window)
  • Keith Cirkel, Metaprogramming in ES6: Symbols and why they're awesome (opens new window): Symbol 的深入介绍
  • Axel Rauschmayer, Customizing ES6 via well-known symbols (opens new window)
  • Derick Bailey, Creating A True Singleton In Node.js, With ES6 Symbols (opens new window)
  • Das Surma, How to read web specs Part IIa – Or: ECMAScript Symbols (opens new window): 介绍 Symbol 的规格

# Set 和 Map

  • Mozilla Developer Network, WeakSet (opens new window):介绍 WeakSet 数据结构
  • Dwayne Charrington, What Are Weakmaps In ES6? (opens new window): WeakMap 数据结构介绍
  • Axel Rauschmayer, ECMAScript 6: maps and sets (opens new window): Set 和 Map 结构的详细介绍
  • Jason Orendorff, ES6 In Depth: Collections (opens new window):Set 和 Map 结构的设计思想
  • Axel Rauschmayer, Converting ES6 Maps to and from JSON (opens new window): 如何将 Map 与其他数据结构互相转换

# Proxy 和 Reflect

  • Nicholas C. Zakas, Creating defensive objects with ES6 proxies (opens new window)
  • Axel Rauschmayer, Meta programming with ECMAScript 6 proxies (opens new window): Proxy 详解
  • Daniel Zautner, Meta-programming JavaScript Using Proxies (opens new window): 使用 Proxy 实现元编程
  • Tom Van Cutsem, Harmony-reflect (opens new window): Reflect 对象的设计目的
  • Tom Van Cutsem, Proxy Traps (opens new window): Proxy 拦截操作一览
  • Tom Van Cutsem, Reflect API (opens new window)
  • Tom Van Cutsem, Proxy Handler API (opens new window)
  • Nicolas Bevacqua, ES6 Proxies in Depth (opens new window)
  • Nicolas Bevacqua, ES6 Proxy Traps in Depth (opens new window)
  • Nicolas Bevacqua, More ES6 Proxy Traps in Depth (opens new window)
  • Axel Rauschmayer, Pitfall: not all objects can be wrapped transparently by proxies (opens new window)
  • Bertalan Miklos, Writing a JavaScript Framework - Data Binding with ES6 Proxies (opens new window): 使用 Proxy 实现观察者模式
  • Keith Cirkel, Metaprogramming in ES6: Part 2 - Reflect (opens new window): Reflect API 的详细介绍

# Promise 对象

  • Jake Archibald, JavaScript Promises: There and back again (opens new window)
  • Jake Archibald, Tasks, microtasks, queues and schedules (opens new window)
  • Tilde, rsvp.js (opens new window)
  • Sandeep Panda, An Overview of JavaScript Promises (opens new window): ES6 Promise 入门介绍
  • Dave Atchley, ES6 Promises (opens new window): Promise 的语法介绍
  • Axel Rauschmayer, ECMAScript 6 promises (2/2): the API (opens new window): 对 ES6 Promise 规格和用法的详细介绍
  • Jack Franklin, Embracing Promises in JavaScript (opens new window): catch 方法的例子
  • Ronald Chen, How to escape Promise Hell (opens new window): 如何使用Promise.all方法的一些很好的例子
  • Jordan Harband, proposal-promise-try (opens new window): Promise.try() 方法的提案
  • Sven Slootweg, What is Promise.try, and why does it matter? (opens new window): Promise.try() 方法的优点
  • Yehuda Katz, TC39: Promises, Promises (opens new window): Promise.try() 的用处

# Iterator

  • Mozilla Developer Network, Iterators and generators (opens new window)
  • Mozilla Developer Network, The Iterator protocol (opens new window)
  • Jason Orendorff, ES6 In Depth: Iterators and the for-of loop (opens new window): 遍历器与 for...of 循环的介绍
  • Axel Rauschmayer, Iterators and generators in ECMAScript 6 (opens new window): 探讨 Iterator 和 Generator 的设计目的
  • Axel Rauschmayer, Iterables and iterators in ECMAScript 6 (opens new window): Iterator 的详细介绍
  • Kyle Simpson, Iterating ES6 Numbers (opens new window): 在数值对象上部署遍历器

# Generator

  • Matt Baker, Replacing callbacks with ES6 Generators (opens new window)
  • Steven Sanderson, Experiments with Koa and JavaScript Generators (opens new window)
  • jmar777, What's the Big Deal with Generators? (opens new window)
  • Marc Harter, Generators in Node.js: Common Misconceptions and Three Good Use Cases (opens new window): 讨论 Generator 函数的作用
  • StackOverflow, ES6 yield : what happens to the arguments of the first call next()? (opens new window): 第一次使用 next 方法时不能带有参数
  • Kyle Simpson, ES6 Generators: Complete Series (opens new window): 由浅入深探讨 Generator 的系列文章,共四篇
  • Gajus Kuizinas, The Definitive Guide to the JavaScript Generators (opens new window): 对 Generator 的综合介绍
  • Jan Krems, Generators Are Like Arrays (opens new window): 讨论 Generator 可以被当作数据结构看待
  • Harold Cooper, Coroutine Event Loops in JavaScript (opens new window): Generator 用于实现状态机
  • Ruslan Ismagilov, learn-generators (opens new window): 编程练习,共 6 道题
  • Steven Sanderson, Experiments with Koa and JavaScript Generators (opens new window): Generator 入门介绍,以 Koa 框架为例
  • Mahdi Dibaiee, ES7 Array and Generator comprehensions (opens new window):ES7 的 Generator 推导
  • Nicolas Bevacqua, ES6 Generators in Depth (opens new window)
  • Axel Rauschmayer, ES6 generators in depth (opens new window): Generator 规格的详尽讲解
  • Derick Bailey, Using ES6 Generators To Short-Circuit Hierarchical Data Iteration (opens new window):使用 for...of 循环完成预定的操作步骤

# 异步操作和 Async 函数

  • Luke Hoban, Async Functions for ECMAScript (opens new window): Async 函数的设计思想,与 Promise、Gernerator 函数的关系
  • Jafar Husain, Asynchronous Generators for ES7 (opens new window): Async 函数的深入讨论
  • Nolan Lawson, Taming the asynchronous beast with ES7 (opens new window): async 函数通俗的实例讲解
  • Jafar Husain, Async Generators (opens new window): 对 async 与 Generator 混合使用的一些讨论
  • Daniel Brain, Understand promises before you start using async/await (opens new window): 讨论 async/await 与 Promise 的关系
  • Jake Archibald, Async functions - making promises friendly (opens new window)
  • Axel Rauschmayer, ES proposal: asynchronous iteration (opens new window): 异步遍历器的详细介绍
  • Dima Grossman, How to write async await without try-catch blocks in JavaScript (opens new window): 除了 try/catch 以外的 async 函数内部捕捉错误的方法
  • Mostafa Gaafa, 6 Reasons Why JavaScript’s Async/Await Blows Promises Away (opens new window): Async 函数的6个好处
  • Mathias Bynens, Asynchronous stack traces: why await beats Promise#then() (opens new window): async 函数可以保留错误堆栈

# Class

  • Sebastian Porto, ES6 classes and JavaScript prototypes (opens new window): ES6 Class 的写法与 ES5 Prototype 的写法对比
  • Jack Franklin, An introduction to ES6 classes (opens new window): ES6 class 的入门介绍
  • Axel Rauschmayer, ECMAScript 6: new OOP features besides classes (opens new window)
  • Axel Rauschmayer, Classes in ECMAScript 6 (final semantics) (opens new window): Class 语法的详细介绍和设计思想分析
  • Eric Faust, ES6 In Depth: Subclassing (opens new window): Class 语法的深入介绍
  • Nicolás Bevacqua, Binding Methods to Class Instance Objects (opens new window): 如何绑定类的实例中的 this
  • Jamie Kyle, JavaScript's new #private class fields (opens new window):私有属性的介绍。
  • Mathias Bynens, Public and private class fields (opens new window):实例属性的新写法的介绍。

# Decorator

  • Maximiliano Fierro, Declarative vs Imperative (opens new window): Decorators 和 Mixin 介绍
  • Justin Fagnani, "Real" Mixins with JavaScript Classes (opens new window): 使用类的继承实现 Mixin
  • Addy Osmani, Exploring ES2016 Decorators (opens new window): Decorator 的深入介绍
  • Sebastian McKenzie, Allow decorators for functions as well (opens new window): 为什么修饰器不能用于函数
  • Maximiliano Fierro, Traits with ES7 Decorators (opens new window): Trait 的用法介绍
  • Jonathan Creamer: Using ES2016 Decorators to Publish on an Event Bus (opens new window): 使用修饰器实现自动发布事件

# Module

  • Jack Franklin, JavaScript Modules the ES6 Way (opens new window): ES6 模块入门
  • Axel Rauschmayer, ECMAScript 6 modules: the final syntax (opens new window): ES6 模块的介绍,以及与 CommonJS 规格的详细比较
  • Dave Herman, Static module resolution (opens new window): ES6 模块的静态化设计思想
  • Jason Orendorff, ES6 In Depth: Modules (opens new window): ES6 模块设计思想的介绍
  • Ben Newman, The Importance of import and export (opens new window): ES6 模块的设计思想
  • ESDiscuss, Why is "export default var a = 1;" invalid syntax? (opens new window)
  • Bradley Meck, ES6 Module Interoperability (opens new window): 介绍 Node 如何处理 ES6 语法加载 CommonJS 模块
  • Axel Rauschmayer, Making transpiled ES modules more spec-compliant (opens new window): ES6 模块编译成 CommonJS 模块的详细介绍
  • Axel Rauschmayer, ES proposal: import() – dynamically importing ES modules (opens new window): import() 的用法
  • Node EPS, ES Module Interoperability (opens new window): Node 对 ES6 模块的处理规格

# 二进制数组

  • Ilmari Heikkinen, Typed Arrays: Binary Data in the Browser (opens new window)
  • Khronos, Typed Array Specification (opens new window)
  • Ian Elliot, Reading A BMP File In JavaScript (opens new window)
  • Renato Mangini, How to convert ArrayBuffer to and from String (opens new window)
  • Axel Rauschmayer, Typed Arrays in ECMAScript 6 (opens new window)
  • Axel Rauschmayer, ES proposal: Shared memory and atomics (opens new window)
  • Lin Clark, Avoiding race conditions in SharedArrayBuffers with Atomics (opens new window): Atomics 对象使用场景的解释
  • Lars T Hansen, Shared memory - a brief tutorial (opens new window)
  • James Milner, The Return of SharedArrayBuffers and Atomics (opens new window)

# SIMD

  • TC39, SIMD.js Stage 2 (opens new window)
  • MDN, SIMD (opens new window)
  • TC39, ECMAScript SIMD (opens new window)
  • Axel Rauschmayer, JavaScript gains support for SIMD (opens new window)

# 工具

  • Babel, Babel Handbook (opens new window): Babel 的用法介绍
  • Google, traceur-compiler (opens new window): Traceur 编译器
  • Casper Beyer, ECMAScript 6 Features and Tools (opens new window)
  • Stoyan Stefanov, Writing ES6 today with jstransform (opens new window)
  • ES6 Module Loader, ES6 Module Loader Polyfill (opens new window): 在浏览器和 node.js 加载 ES6 模块的一个库,文档里对 ES6 模块有详细解释
  • Paul Miller, es6-shim (opens new window): 一个针对老式浏览器,模拟 ES6 部分功能的垫片库(shim)
  • army8735, JavaScript Downcast (opens new window): 国产的 ES6 到 ES5 的转码器
  • esnext, ES6 Module Transpiler (opens new window):基于 node.js 的将 ES6 模块转为 ES5 代码的命令行工具
  • Sebastian McKenzie, BabelJS (opens new window): ES6 转译器
  • SystemJS, SystemJS (opens new window): 在浏览器中加载 AMD、CJS、ES6 模块的一个垫片库
  • Modernizr, HTML5 Cross Browser Polyfills (opens new window): ES6 垫片库清单
  • Facebook, regenerator (opens new window): 将 Generator 函数转为 ES5 的转码器
编辑 (opens new window)
#ES6
SIMD

← SIMD

最近更新
01
网格布局中的动画
09-15
02
Git修改分支名
08-11
03
CSS给table的tbody添加滚动条
06-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Evan Xu | MIT License | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式