logo资料库

es6入门教程.pdf

第1页 / 共496页
第2页 / 共496页
第3页 / 共496页
第4页 / 共496页
第5页 / 共496页
第6页 / 共496页
第7页 / 共496页
第8页 / 共496页
资料共496页,剩余部分请下载后查看
ECMAScript 6入门
ECMAScript 6入门
版权许可
ECMAScript 6简介
ECMAScript和JavaScript的关系
ECMAScript的历史
部署进度
Babel转码器
配置文件.babelrc
命令行转码babel-cli
babel-node
babel-register
babel-core
babel-polyfill
浏览器环境
在线转换
与其他工具的配合
Traceur转码器
直接插入网页
在线转换
命令行转换
Node.js环境的用法
ECMAScript 7
let和const命令
let命令
基本用法
上存在变量提升
暂时性死区
上允许重夊声明
块级作用域
为什么需要块级作用域?
ES6的块级作用域
const命令
全局对象的属性
变量的解构赋值
数组的解构赋值
基本用法
默认值
对象的解构赋值
字符串的解构赋值
数值和布尔值的解构赋值
函数参数的解构赋值
圆括号问题
上能使用圆括号的情况
可以使用圆括号的情况
用途
字符串的扩展
字符的Unicode表示法
codePointAt()
String.fromCodePoint()
字符串的遍历器接口
at()
normalize()
includes(), startsWith(), endsWith()
repeat()
padStart(),padEnd()
模板字符串
实例:模板编译
标签模板
String.raw()
正则的扩展
RegExp构造函数
字符串的正则方法
u修饰符
y修饰符
sticky属性
flags属性
RegExp.escape()
后行断言
数组的扩展
Array.from()
Array.of()
数组实例的copyWithin()
数组实例的find()和findIndex()
数组实例的fill()
数组实例的entries(),keys()和values()
数组实例的includes()
数组的空位
函数的扩展
函数参数的默认值
基本用法
与解构赋值默认值结合使用
参数默认值的位置
函数的length属性
作用域
应用
rest参数
扩展运算符
含义
替代数组的apply方法
扩展运算符的应用
name属性
箭头函数
基本用法
使用注意点
嵌套的箭头函数
函数绑定
尾调用优化
什么是尾调用?
尾调用优化
尾递归
递归函数的改写
严格模式
尾递归优化的实现
函数参数的尾逗号
对象的扩展
属性的简洁表示法
属性吊表达式
方法的name属性
Object.is()
Object.assign()
基本用法
注意点
常见用途
属性的可枚举性
属性的遍历
__proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf()
Object.values(),Object.entries()
Object.keys()
Object.values()
Object.entries
对象的扩展运算符
Object.getOwnPropertyDescriptors()
Symbol
概述
作为属性吊的Symbol
实例:消除魔术字符串
属性吊的遍历
Symbol.for(),Symbol.keyFor()
内置的Symbol值
Symbol.hasInstance
Symbol.isConcatSpreadable
Symbol.species
Symbol.match
Symbol.replace
Symbol.search
Symbol.split
Symbol.iterator
Symbol.toPrimitive
Symbol.toStringTag
Symbol.unscopables
Proxy和Reflect
Proxy概述
Proxy实例的方法
get()
set()
apply()
has()
construct()
deleteProperty()
defineProperty()
enumerate()
getOwnPropertyDescriptor()
getPrototypeOf()
isExtensible()
ownKeys()
preventExtensions()
setPrototypeOf()
Proxy.revocable()
Reflect概述
Reflect对象的方法
二进制数组
ArrayBuffer对象
概述
ArrayBuffer.prototype.byteLength
ArrayBuffer.prototype.slice()
ArrayBuffer.isView()
TypedArray视图
概述
构造函数
数组方法
字节序
BYTES_PER_ELEMENT属性
ArrayBuffer与字符串的互相转换
溢出
TypedArray.prototype.buffer
TypedArray.prototype.byteLength,TypedArray.prototype.byteOffset
TypedArray.prototype.length
TypedArray.prototype.set()
TypedArray.prototype.subarray()
TypedArray.prototype.slice()
TypedArray.of()
TypedArray.from()
夊合视图
DataView视图
二进制数组的应用
AJAX
Canvas
WebSocket
Fetch API
File API
Set和Map数据结构
Set
基本用法
Set实例的属性和方法
遍历操作
WeakSet
Map
Map结构的目的和基本用法
实例的属性和操作方法
遍历方法
与其他数据结构的互相转换
WeakMap
Iterator和for...of循环
Iterator(遍历器)的概念
数据结构的默认Iterator接口
调用Iterator接口的场合
字符串的Iterator接口
Iterator接口与Generator函数
遍历器对象的return(),throw()
for...of循环
数组
Set和Map结构
计算生成的数据结构
类似数组的对象
对象
与其他遍历语法的比较
Generator 函数
简介
基本概念
yield语句
与Iterator接口的关系
next方法的参数
for...of循环
Generator.prototype.throw()
Generator.prototype.return()
yield*语句
作为对象属性的Generator函数
Generator函数的this
含义
Generator与状态机
Generator与协程
应用
(1)异步操作的同步化表达
(2)控制流管理
(3)部署iterator接口
(4)作为数据结构
Promise对象
Promise的含义
基本用法
Promise.prototype.then()
Promise.prototype.catch()
Promise.all()
Promise.race()
Promise.resolve()
Promise.reject()
两个有用的附加方法
done()
finally()
应用
加载图片
Generator函数与Promise的结合
async函数
异步操作和Async函数
基本概念
异步
回调函数
Promise
Generator函数
协程
Generator函数的概念
Generator函数的数据交换和错误处理
异步任务的封装
Thunk函数
参数的求值策略
Thunk函数的含义
JavaScript语言的Thunk函数
Thunkify模块
Generator 函数的流程管理
Thunk函数的自动流程管理
co模块
基本用法
co模块的原理
基于Promise对象的自动执行
co模块的源码
处理并发的异步操作
async函数
含义
async函数的实现
async 函数的用法
注意点
与Promise、Generator的比较
Class
Class基本语法
概述
constructor方法
类的实例对象
name属性
Class表达式
上存在变量提升
严格模式
Class的继承
基本用法
类的prototype属性和__proto__属性
Extends 的继承目标
Object.getPrototypeOf()
super关键字
实例的__proto__属性
原生构造函数的继承
Class的取值函数(getter)和存值函数(setter)
Class的Generator方法
Class的静态方法
Class的静态属性和实例属性
new.target属性
Mixin模式的实现
修饰器
类的修饰
方法的修饰
为什么修饰器上能用于函数?
core-decorators.js
使用修饰器实现自动发布事件
Mixin
Trait
Babel转码器的支持
Module
严格模式
export命令
import命令
模块的整体加载
export default命令
模块的继承
ES6模块加载的实质
循环加载
CommonJS模块的加载原理
CommonJS模块的循环加载
ES6模块的循环加载
跨模块常量
ES6模块的转码
ES6 module transpiler
SystemJS
函数式编程
函数合成
参数倒置
执行边界
队列操作
合并操作
配对操作
参考链接
Mixin
含义
Trait
编程风格
块级作用域
字符串
解构赋值
对象
数组
函数
Map结构
Class
模块
ESLint的使用
读懂 ECMAScript 规格
概述
相等运算符
数组的空位
数组的map方法
参考链接
官方文件
综合介绍
let和const
解构赋值
字符串
正则
数值
数组
函数
对象
Proxy和Reflect
Symbol
二进制数组
Set和Map
Iterator
Generator
Promise对象
异步操作和Async函数
Class
Decorator
Module
工具
ECMAScript 6入门入门 Introduction 目录 ECMAScript 6简介 let和const命令 变量的解构赋值 字符串的扩展 正则的扩展 数组的扩展 函数的扩展 对象的扩展 Symbol Proxy和Reflect 二进制数组 Set和Map数据结构 Iterator和for...of循环 Generator 函数 Promise对象 异步操作和Async函数 Class Decorator Module 函数式编程 Mixin 编程风格 读懂规格 参考链接 源码 修订历史 其他 0 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 2 2.1 2.2
ECMAScript 6入门入门 《ECMAScript 6入门》是一本开源的JavaScript语言教程,全面介绍ECMAScript 6新引入的语法特性。 本书覆盖 ES6/ES7 与 ES5 的所有不同之处,对涉及的语法知识给予详细介绍,并给出大量简洁易懂的示例代 码。 本书为中级难度,适合已经掌握 ES5 的读者,用来了解这门语言的最新发展;也可当作参考手册,查寻新增 的语法点。 全书已由电子工业出版社出版,目前是第二版,书名为《ES6 标准入门》。纸版是基于网站内容排版印刷 的。 感谢张春雨编辑支持我将全书开源的做法。如果您认可这本书,建议购买纸版。这样可以使出版社不因出版 开源书籍而亏钱,进而鼓励更多的作者开源自己的书籍。 京东 当当 亚马逊 China-pub 版权许可 版权许可 本书采用“保持署名—非商用”创意共享4.0许可证。 只要保持原作者署名和非商用,您可以自由地阅读、分享、修改本书。 详细的法律条文请参见创意共享网站。
ECMAScript 6简介简介 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是 使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 标准的制定者有计划,以后每年发布一次标准,使用年份作为标准的版本。因为当前版本的ES6是在2015年 发布的,所以又称ECMAScript 2015。也就是说,ES6就是ES2015,下一年应该会发布小幅修订的ES2016。
ECMAScript和和JavaScript的关系的关系 一个常见的问题是,ECMAScript和JavaScript到底是什么关系? 要讲清楚这个问题,需要回顾历史。1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给 国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262) 的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准从一开始就是针对JavaScript语言制定的,但是之所以不叫JavaScript,有两个原因。一是商标,Java是 Sun公司的商标,根据授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript本身也 已经被Netscape公司注册为商标。二是想体现这门语言的制定者是ECMA,不是Netscape,这样有利于保证这 门语言的开放性和中立性。 因此,ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的ECMAScript 方言还有Jscript和ActionScript)。在日常场合,这两个词是可以互换的。
分享到:
收藏