# ES6 标准入门

ES6标准入门

# 第1章 ECMAScript简介

# 1.1 ECMAScript和JavaScript的关系

# 1.2 ECMAScript的历史

ES6 是 ECMA 为 JavaScript 制定的第 6 个标准版本,相关历史可查看此章节《ES6-ECMAScript6 简介》

标准委员会最终决定,标准在每年 6 月正式发布并作为当年的正式版本,接下来的时间里就在此版本的基础上进行改动,直到下一年 6 月草案就自然变成新一年的版本,这样一来就无需以前的版本号,只要用年份标记即可。ECMAscript 2015 是在 2015 年 6 月发布 ES6 的第一个版本。以此类推,ECMAscript 2016 是 ES6 的第二个版本、 ECMAscript 2017 是 ES6 的第三个版本。ES6 既是一个历史名词也是一个泛指,含义是 5.1 版本以后的 JavaScript 下一代标准,目前涵盖了 ES2015ES2016ES2017ES2018ES2019ES2020

所以有些文章上提到的 ES7(实质上是 ES2016)、ES8(实质上是 ES2017)、ES9(实质上是ES2018)、ES10(实质上是 ES2019)、ES11(实质上是 ES2020),实质上都是一些不规范的概念。从 ES1 到 ES6,每个标准都是花了好几年甚至十多年才制定下来,你一个 ES6 到 ES7,ES7 到 ES8,才用了一年,按照这样的定义下去,那不是很快就 ES20 了。用正确的概念来说 ES6 目前涵盖了 ES2015ES2016ES2017ES2018ES2019ES2020

# 1.3 部署进度

# 1.4 Babel转码器

# 1.4 Babel转码器

# 1.5 Traceur转码器

# 1.6 ECMAScript7

# 第2章 let和const命令

# 2.1 let命令

# 2.2 块级作用域

# 2.3 const命令

# 2.4 跨模块常量

# 2.5 全局对象的属性

# 第3章 变量的解构赋值

# 3.1 数据的解构赋值

# 3.2 对象的解构赋值

# 3.3 字符串的解构赋值

# 3.4 数值和布尔值的解构赋值

# 3.5 函数参数的解构赋值

# 3.6 圆括号问题

# 3.7 用途

# 第4章 字符串的扩展

# 4.1 字符串的Unicode表示法

# 4.2 codePointAt()

# 4.3 String.fromCodePoint()

# 4.4 字符串的遍历器接口

# 4.5 at()

# 4.6 normalize()

# 4.7 includes()、startWidth()、endsWith()

# 4.8 repeat()

# 4.9 padStart()、padEnd()

# 4.10 模版字符串

# 4.11 实例:模版编译

# 4.12 标签模版

# 4.13 String.raw()

# 第5章 正则的扩展

# 5.1 RegExp构造函数

# 5.2 字符串的正则方法

# 5.3 u修饰符

# 5.4 y修饰符

# 5.5 sticky属性

# 5.6 flags属性

# 5.7 RegExp.escape()

# 第6章 Math对象的扩展

# 6.1 二进制和八进制数值表示法

# 6.2 Number.isFinite()、Number.isNaN()

# 6.3 Number.parseInt()、Number.parseFloat()

# 6.4 Number.isInteger()

# 6.5 Number.EPSILON

# 6.6 安全整数和Number.isSafeInteger()

# 6.7 Math对象的扩展

# 6.8 指数运算符

# 第7章 数组的扩展

# 7.1 Array.from()

# 7.2 Array.of()

# 7.3 数组实例的copyWithin()

# 7.4 数组实例的find()和findIndex()

# 7.5 数组实例的fill()

# 7.6 数组实例的entries()、keys()和values()

# 7.7 数组实例的includes()

# 7.8 数组的空位

# 7.9 数组推导

# 第8章 函数的扩展

# 8.1 函数参数的默认值

# 8.2 rest参数

# 8.3 扩展运算符

# 8.4 name属性

# 8.5 箭头函数

# 8.6 函数绑定

# 8.7 尾调用优化

# 8.8 函数参数的尾逗号

# 第9章 对象的扩展

# 9.1 属性的简洁表示法

# 9.2 属性名表达式

# 9.3 方法的name属性

# 9.4 Object.is()

# 9.5 Object.assign()

# 9.6 属性的可枚举性

# 9.7 属性的遍历

# 9.8 _proto_属性、Object.setPrototypeOf()、Object.getPrototypeOf()

# 9.9 对象的扩展运算符

# 第10章 Symbol

# 10.1 概述

# 10.2 作为属性名的Symbol

# 10.3 实例:消除魔法字符串

# 10.4 属性名的遍历

# 10.5 Symbol.for()、Symbol.keyFor()

# 10.6 内置的Symbol值

# 第11章 Symbol

# 11.1 Proxy概述

# 11.2 Proxy实例的方法

# get()

# set()

# apply()

# has()

# construct()

# deleteProperty()

# enumerate()

# getOwnPropertyDescriptor()

# getPrototypeOf()

# isExtensible()

# ownKeys()

# preventExtensions()

# setPrototypeOf()

# 11.3 Proxy.revocable()

# 11.4 Reflect概述

# 11.5 Reflect对象的方法

# 第12章 二进制数组

# 12.1 ArrayBuffer对象

# 12.2 TypedArray视图

# 12.3 复合视图

# 12.4 DataView视图

# 12.5 二进制数组的应用

# 第13章 Set和Map数据结构

# 13.1 Set

# 13.2 WeakSet

# 13.3 Map

# 13.4 WeakMap

# 第14章 Symbol

# 14.1 概述

# 14.2 作为属性名的Symbol

# 14.3 实例:消除魔法字符串

# 14.4 属性名的遍历

# 14.5 Symbol.for()、Symbol.keyFor()

# 14.6 内置的Symbol值

# 第15章 Generator函数

# 15.1 简介

# 15.2 next方法的参数

# 15.3 for...of循环

# 15.4 Generator.prototype.throw()

# 15.5 Generator.prototype.return()

# 15.6 yield* 语句

# 15.7 作为对象属性的Generator函数

# 15.8 Generator函数的this

# 15.9 Generator函数推导

# 15.10 含义

# 15.11 应用

# 第16章 Promise对象

# 16.1 Promise的含义

# 16.2 基本用法

# 16.3 Promise.prototype.then()

# 16.4 Promise.prototype.catch()

# 16.5 Promise.all()

# 16.6 Promise.race()

# 16.7 Promise.resolve()

# 16.8 Promise.reject()

# 16.9 两个有用的附加方法

# 16.10 应用

# 16.11 async函数

# 第17章 异步函数和async函数

# 17.1 基本概念

# 17.2 Generator函数

# 17.3 Thunk函数

# 17.4 co模块

# 17.5 async函数

# 第18章 Class

# 18.1 Class的基本语法

# 18.2 Class的继承

# 18.3 原生构造函数的继承

# 18.4 Class的取值函数(getter)和存值函数(setter)

# 18.5 Class的Generator方法

# 18.6 Class的静态方法

# 18.7 Class的静态属性

# 18.8 new.target属性

# 18.9 Mixin模式的实现

# 第19章 修饰器

# 19.1 类的修饰

# 19.2 方法的修饰

# 19.3 为什么修饰器不能用于函数

# 19.4 core-decorator.js

# 19.5 使用修饰器实现自动发布事件

# 19.6 Mixin

# 19.7 Trait

# 19.8 Babel转码器的支持

# 第20章 Module

# 20.1 严格模式

# 20.2 export命令

# 20.3 import命令

# 20.4 模块的整体加载

# 20.5 module命令

# 20.6 export default命令

# 20.7 模块的继承

# 20.8 ES6模块加载的实质

# 20.9 循环加载

# 20.10 ES6模块的转码

# 第21章 编程风格

# 21.1 块级作用域

# 21.2 字符串

# 21.3 结构赋值

# 21.4 对象

# 21.5 数组

# 21.6 函数

# 21.7 Map结构

# 21.8 Class

# 21.9 模块

# 21.10 ESLint的使用

# 第22章 读懂ECMAScript规格

# 21.1 概述

# 21.2 相等运算符

# 21.3 数组的空位

# 21.4 数组的map方法

最近更新时间: 11/5/2020, 10:57:16 PM