ES6标准入门(第二版)pdf

下载地址:网盘下载




内容简介  · · · · · ·

作者简介  · · · · · ·

阮一峰:著名技术博客作者,JavaScript专家。专注于网站开发技术,超过十年。畅销书《黑客与画家》《软件随想录》的译者。

目录  · · · · · ·

第1章 ECMAScript 6简介 001
1.1 ECMAScript和JavaScript的关系 001
1.2 ECMAScript的历史 001
1.3 部署进度 002
1.4 Babel转码器 003
命令行环境 004
浏览器环境 005
Node.js环境 005
在线转换 006
1.5 Traceur转码器 006
直接插入网页 006
在线转换 007
命令行转换 008
Node.js环境的用法 008
1.6 ECMAScript 7 009
第2章 let和const命令 010
2.1 let命令 010
基本用法 010
不存在变量提升 011
暂时性死区 011
不允许重复声明 012
2.2 块级作用域 013
为什么需要块级作用域 013
ES6的块级作用域 013
2.3 const命令 015
2.4 跨模块常量 016
2.5 全局对象的属性 017
第3章 变量的解构赋值 018
3.1 数组的解构赋值 018
基本用法 018
默认值 020
3.2 对象的解构赋值 021
3.3 字符串的解构赋值 024
3.4 数值和布尔值的解构赋值 024
3.5 函数参数的解构赋值 024
3.6 圆括号问题 025
不能使用圆括号的情况 025
可以使用圆括号的情况 026
3.7 用途 026
第4章 字符串的扩展 029
4.1 字符的Unicode表示法 029
4.2 codePointAt() 030
4.3 String.fromCodePoint() 031
4.4 字符串的遍历器接口 031
4.5 at() 032
4.6 normalize() 032
4.7 includes(),startsWith(),endsWith() 033
4.8 repeat() 033
4.9 padStart(),padEnd() 034
4.10 模板字符串 034
4.11 实例:模板编译 037
4.12 标签模板 038
4.13 String.raw() 042
第5章 正则的扩展 043
5.1 RegExp 构造函数 043
5.2 字符串的正则方法 043
5.3 u 修饰符 043
5.4 y 修饰符 045
5.5 sticky 属性 047
5.6 flags 属性 048
5.7 RegExp.escape() 048
第6章 数值的扩展 049
6.1 二进制和八进制数值表示法 049
6.2 Number.isFinite(), Number.isNaN() 049
6.3 Number.parseInt(), Number.parseFloat() 051
6.4 Number.isInteger() 051
6.5 Number.EPSILON 051
6.6 安全整数和Number.isSafeInteger() 052
6.7 Math 对象的扩展 054
Math.trunc() 054
Math.sign() 054
Math.cbrt() 055
Math.clz32() 055
Math.imul() 056
Math.fround() 056
Math.hypot() 057
对数方法 057
三角函数方法 058
6.8 指数运算符 058
第7章 数组的扩展 059
7.1 Array.from() 059
7.2 Array.of() 061
7.3 数组实例的copyWithin() 062
7.4 数组实例的find() 和findIndex() 063
7.5 数组实例的fill() 063
7.6 数组实例的entries()、keys() 和values() 064
7.7 数组实例的includes() 064
7.8 数组的空位 065
7.9 数组推导 067
第8章 函数的扩展 069
8.1 函数参数的默认值 069
基本用法 069
与解构赋值默认值结合使用 070
参数默认值的位置 071
函数的length 属性 072
作用域 073
应用 074
8.2 rest 参数 074
8.3 扩展运算符 075
含义 075
替代数组的apply 方法 076
扩展运算符的应用 077
8.4 name 属性 079
8.5 箭头函数 080
基本用法 080
使用注意点 081
嵌套的箭头函数 083
8.6 函数绑定 084
8.7 尾调用优化 085
什么是尾调用 085
尾调用优化 086
尾递归 087
递归函数的改写 088
8.8 函数参数的尾逗号 089
第9章 对象的扩展 090
9.1 属性的简洁表示法 090
9.2 属性名表达式 092
9.3 方法的name 属性 093
9.4 Object.is() 094
9.5 Object.assign() 095
9.6 属性的可枚举性 097
9.7 属性的遍历 098
9.8 __proto__ 属性, Object.setPrototypeOf(), Object.getPrototypeOf() 099
9.9 对象的扩展运算符 101
第10 章 Symbol 103
10.1 概述 103
10.2 作为属性名的Symbol 105
10.3 实例:消除魔术字符串 106
10.4 属性名的遍历 107
10.5 Symbol.for(),Symbol.keyFor() 109
10.6 内置的Symbol 值 110
Symbol.hasInstance 110
Symbol.isConcatSpreadable 110
Symbol.species 111
Symbol.match 111
Symbol.replace 112
Symbol.search 112
Symbol.split 112
Symbol.iterator 112
Symbol.toPrimitive 113
Symbol.toStringTag 113
Symbol.unscopables 114
第11 章 Proxy 和Reflect 116
11.1 Proxy 概述 116
11.2 Proxy 实例的方法 119
get() 119
set() 121
apply() 122
has() 123
construct() 123
deleteProperty() 124
defineProperty() 125
enumerate() 125
getOwnPropertyDescriptor() 126
getPrototypeOf() 126
isExtensible() 127
ownKeys() 127
preventExtensions() 128
setPrototypeOf() 128
11.3 Proxy.revocable() 129
11.4 Reflect 概述 129
11.5 Reflect 对象的方法 130
第12 章 二进制数组 133
12.1 ArrayBuffer 对象 134
概述 134
ArrayBuffer.prototype.byteLength 135
ArrayBuffer.prototype.slice() 135
ArrayBuffer.isView() 136
12.2 TypedArray 视图 136
概述 136
构造函数 136
数组方法 138
字节序 140
BYTES_PER_ELEMENT 属性 141
ArrayBuffer 与字符串的互相转换 142
溢出 142
TypedArray.prototype.buffer 143
TypedArray.prototype.byteLength, TypedArray.prototype.byteOffset 143
TypedArray.prototype.length 143
TypedArray.prototype.set() 144
TypedArray.prototype.subarray() 144
TypedArray.prototype.slice() 144
TypedArray.of() 144
TypedArray.from() 145
12.3 复合视图 145
12.4 DataView 视图 146
12.5 二进制数组的应用 148
AJAX 148
Canvas 148
WebSocket 149
Fetch API 149
File API 149
第13 章 Set 和Map 数据结构 151
13.1 Set 151
基本用法 151
Set 实例的属性和方法 152
遍历操作 153
13.2 WeakSet 155
13.3 Map 157
Map 结构的目的和基本用法 157
实例的属性和操作方法 159
遍历方法 160
与其他数据结构的互相转换 162
13.4 WeakMap 164
第14 章 Iterator 和for...of 循环 166
14.1 Iterator 的概念 166
14.2 数据结构的默认Iterator 接口 168
14.3 调用Iterator 接口的场合 172
14.4 字符串的Iterator 接口 173
14.5 Iterator 接口与Generator 函数 174
14.6 遍历器对象的return()、throw() 175
14.7 for...of 循环 175
数组 175
Set 和Map 结构 177
计算生成的数据结构 177
类似数组的对象 178
对象 179
与其他遍历语法的比较 180
第15 章 Generator 函数 181
15.1 简介 181
基本概念 181
yield 语句 182
与Iterator 接口的关系 184
15.2 next 方法的参数 185
15.3 for...of 循环 187
15.4 Generator.prototype.throw() 189
15.5 Generator.prototype.return() 193
15.6 yield* 语句 194
15.7 作为对象属性的Generator 函数 199
15.8 Generator 函数的this 200
15.9 Generator 函数推导 201
15.10 含义 202
Generator 与状态机 202
Generator 与协程 202
15.11 应用 203
第16 章 Promise 对象 208
16.1 Promise 的含义 208
16.2 基本用法 208
16.3 Promise.prototype.then() 211
16.4 Promise.prototype.catch() 212
16.5 Promise.all() 215
16.6 Promise.race() 216
16.7 Promise.resolve() 216
16.8 Promise.reject() 217
16.9 两个有用的附加方法 218
done() 218
finally() 218
16.10 应用 219
加载图片 219
Generator 函数与Promise 的结合 219
16.11 async 函数 220
第17 章 异步操作和async 函数 221
17.1 基本概念 221
异步 221
回调函数 221
Promise 222
17.2 Generator 函数 223
协程 223
Generator 函数的概念 223
Generator 函数的数据交换和错误处理 224
异步任务的封装 224
17.3 Thunk 函数 225
参数的求值策略 225
Thunk 函数的含义 226
JavaScript 语言的Thunk 函数 226
Thunkify 模块 227
Generator 函数的流程管理 228
Thunk 函数的自动流程管理 229
17.4 co 模块 230
基本用法 230
co 模块的原理 230
基于Promise 对象的自动执行 231
co 模块的源码 232
处理并发的异步操作 233
17.5 async 函数 234
含义 234
async 函数的实现 235
async 函数的用法 236
注意点 236
与Promise、Generator 的比较 238
第18 章 Class 240
18.1 Class 基本语法 240
概述 240
constructor 方法 243
实例对象 243
name 属性 244
Class 表达式 245
不存在变量提升 245
严格模式 246
18.2 Class 的继承 246
基本用法 246
类的prototype 属性和__proto__ 属性 247
extends 的继承目标 248
Object.getPrototypeOf() 249
super 关键字 249
实例的__proto__ 属性 250
18.3 原生构造函数的继承 250
18.4 Class 的取值函数(getter)和存值函数(setter) 253
18.5 Class 的Generator 方法 254
18.6 Class 的静态方法 254
18.7 Class 的静态属性 255
18.8 new.target 属性 256
18.9 Mixin 模式的实现 258
第19 章 修饰器 259
19.1 类的修饰 259
19.2 方法的修饰 261
19.3 为什么修饰器不能用于函数 262
19.4 core-decorators.js 263
@autobind 263
@readonly 263
@override 263
@deprecate(别名@deprecated) 264
@suppressWarnings 265
19.5 使用修饰器实现自动发布事件 265
19.6 Mixin 266
19.7 Trait 267
19.8 Babel 转码器的支持 269
第20 章 Module 270
20.1 严格模式 271
20.2 export 命令 271
20.3 import 命令 272
20.4 模块的整体加载 273
20.5 module 命令 274
20.6 export default 命令 274
20.7 模块的继承 276
20.8 ES6 模块加载的实质 277
20.9 循环加载 278
CommonJS 模块的加载原理 279
CommonJS 模块的循环加载 279
ES6 模块的循环加载 280
20.10 ES6 模块的转码 282
ES6 module transpiler 282
SystemJS 282
第21 章 编程风格 284
21.1 块级作用域 284
let 取代var 284
全局常量和线程安全 285
严格模式 285
21.2 字符串 285
21.3 解构赋值 285
21.4 对象 286
21.5 数组 288
21.6 函数 288
21.7 Map 结构 289
21.8 Class 290
21.9 模块 291
21.10 ESLint 的使用 292
第22 章 读懂ECMAScript 规格 293
22.1 概述 293
22.2 相等运算符 293
22.3 数组的空位 295
22.4 数组的map 方法 296
第23 章 参考链接 299
23.1 官方文件 299
23.2 综合介绍 299
23.3 let 和const 302
23.4 解构赋值 302
23.5 字符串 303
23.6 正则 304
23.7 数值 304
23.8 数组 304
23.9 函数 305
23.10 对象 306
23.11 Proxy 和Reflect 306
23.12 Symbol 308
23.13 二进制数组 308
23.14 Set 和Map 309
23.15 Iterator 310
23.16 Generator 311
23.17 Promise 对象 312
23.18 Class 314
23.19 Decorator 314
23.20 Module 315
23.21 工具 316



下载地址:网盘下载

转载于:https://www.cnblogs.com/long12365/p/9731586.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hexo博客添加暗色模式_我如何向网站添加暗模式

hexo博客添加暗色模式同一个网站,两种不同的配色方案 (Same website, two different color schemes) Last year I made it a point to redesign my website from scratch. I wanted something simple and minimalist looking that clearly stated what this was — …

leetcode 331. 验证二叉树的前序序列化

序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。_9_/ \3 2/ \ / \4 1 # 6 / \ / \ / \ # # # # # # 例如&#xff0…

mongodb数据可视化_使用MongoDB实时可视化开放数据

mongodb数据可视化Using Python to connect to Taiwan Government PM2.5 open data API, and schedule to update data in real time to MongoDB — Part 2使用Python连接到台湾政府PM2.5开放数据API,并计划将数据实时更新到MongoDB —第2部分 目标 (Goal) This ti…

4.kafka的安装部署

为了安装过程对一些参数的理解,我先在这里提一下kafka一些重点概念,topic,broker,producer,consumer,message,partition,依赖于zookeeper, kafka是一种消息队列,他的服务端是由若干个broker组成的,broker会向zookeeper,producer生成者对应一个…

javascript初学者_针对JavaScript初学者的调试技巧和窍门

javascript初学者by Priyanka Garg由Priyanka Garg My intended audience for this tutorial is beginner programmers. You’ll learn about frustration-free debugging with chrome dev tools.本教程的目标读者是初学者。 您将学习使用chrome开发工具进行无挫折的调试。 D…

leetcode 705. 设计哈希集合

不使用任何内建的哈希表库设计一个哈希集合(HashSet)。 实现 MyHashSet 类: void add(key) 向哈希集合中插入值 key 。 bool contains(key) 返回哈希集合中是否存在这个值 key 。 void remove(key) 将给定值 key 从哈希集合中删除。如果哈希…

ecshop 前台个人中心修改侧边栏 和 侧边栏显示不全 或 导航现实不全

怎么给个人中心侧边栏加项或者减项 在模板文件default/user_menu.lbi 文件里添加或者修改,一般看到页面都会知道怎么加,怎么删,这里就不啰嗦了 添加一个栏目以后,这个地址跳的页面怎么写 这是最基本的一个包括左侧个人信息,头部导航栏 <!DOCTYPE html PUBLIC "-//W3C//…

leetcode 706. 设计哈希映射

不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。 实现 MyHashMap 类&#xff1a; MyHashMap() 用空映射初始化对象 void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中&#xff0c;则更新其对应…

数据库语言 数据查询_使用这种简单的查询语言开始查询数据

数据库语言 数据查询Working with data is becoming an increasingly important skill in the modern workplace. 在现代工作场所中&#xff0c;处理数据已成为越来越重要的技能。 Data is no longer the domain of analysts and software engineers. With todays technology,…

面向对象编程思想-观察者模式

一、引言 相信猿友都大大小小经历过一些面试&#xff0c;其中有道经典题目&#xff0c;场景是猫咪叫了一声&#xff0c;老鼠跑了&#xff0c;主人被惊醒&#xff08;设计有扩展性的可加分&#xff09;。对于初学者来说&#xff0c;可能一脸懵逼&#xff0c;这啥跟啥啊是&#x…

typescript 使用_如何使用TypeScript轻松修改Minecraft

typescript 使用by Josh Wulf通过乔什沃尔夫(Josh Wulf) 如何使用TypeScript轻松修改Minecraft (How to modify Minecraft the easy way with TypeScript) Usually, modifying Minecraft requires coding in Java, and a lot of scaffolding. Now you can write and share Min…

Python:在Pandas数据框中查找缺失值

How to find Missing values in a data frame using Python/Pandas如何使用Python / Pandas查找数据框中的缺失值 介绍&#xff1a; (Introduction:) When you start working on any data science project the data you are provided is never clean. One of the most common …

监督学习-回归分析

一、数学建模概述 监督学习&#xff1a;通过已有的训练样本进行训练得到一个最优模型&#xff0c;再利用这个模型将所有的输入映射为相应的输出。监督学习根据输出数据又分为回归问题&#xff08;regression&#xff09;和分类问题&#xff08;classfication&#xff09;&#…

leetcode 54. 螺旋矩阵(递归)

给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输入&#xff1a;matrix [[1,…

微服务架构技能

2019独角兽企业重金招聘Python工程师标准>>> 微服务架构技能 博客分类&#xff1a; 架构 &#xff08;StuQ 微服务技能图谱&#xff09; 2课程简介 本课程分为基础篇和高级篇两部分&#xff0c;旨在通过完整的案例&#xff0c;呈现微服务的开发、测试、构建、部署、…

phpstorm 调试_PhpStorm中的多用户调试

phpstorm 调试by Ray Naldo雷纳尔多(Ray Naldo) PhpStorm中的多用户调试 (Multi-User Debugging in PhpStorm) 使用Xdebug和DBGp代理 (Using Xdebug and DBGp Proxy) “Er, wait a minute… Don’t you just use xdebug.remote_connect_back which has been introduced since …

Tableau Desktop认证:为什么要关心以及如何通过

Woah, Tableau!哇&#xff0c;Tableau&#xff01; By now, almost everyone’s heard of the data visualization software that brought visual analytics to the public. Its intuitive drag and drop interface makes connecting to data, creating graphs, and sharing d…

约束布局constraint-layout导入失败的解决方案 - 转

今天有同事用到了约束布局&#xff0c;但是导入我的工程出现错误 **提示错误&#xff1a; Could not find com.Android.support.constraint:constraint-layout:1.0.0-alpha3** 我网上查了一下资料&#xff0c;都说是因为我的androidStudio版本是最新的稳定版导入这个包就会报这…

算法复习:冒泡排序

思想&#xff1a;对于一个列表,每个数都是一个"气泡 "&#xff0c;数字越大表示"越重 "&#xff0c;最重的气泡移动到列表最后一位&#xff0c;冒泡排序后的结果就是“气泡”按照它们的重量依次移动到列表中它们相应的位置。 算法&#xff1a;搜索整个列表…

leetcode 59. 螺旋矩阵 II(递归)

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]] 解题思路 按层进行数字的填充&#xff0c;每一层…