es6目录(阮大神)

1.ECMAScript 6 简介

  1. ECMAScript 和 JavaScript 的关系
  2. ES6 与 ECMAScript 2015 的关系
  3. 语法提案的批准流程
  4. ECMAScript 的历史
  5. Babel 转码器

2.let 和 const 命令

  1. let 命令
  2. 块级作用域
  3. const 命令
  4. 顶层对象的属性
  5. globalThis 对象

3.变量的解构赋值

  1. 数组的解构赋值
  2. 对象的解构赋值
  3. 字符串的解构赋值
  4. 数值和布尔值的解构赋值
  5. 函数参数的解构赋值
  6. 圆括号问题
  7. 用途

4.字符串的扩展

  1. 字符的 Unicode 表示法
  2. 字符串的遍历器接口
  3. 直接输入 U+2028 和 U+2029
  4. JSON.stringify() 的改造
  5. 模板字符串
  6. 实例:模板编译
  7. 标签模板
  8. 模板字符串的限制

5.字符串的新增方法

  1. String.fromCodePoint()
  2. String.raw()
  3. 实例方法:codePointAt()
  4. 实例方法:normalize()
  5. 实例方法:includes(), startsWith(), endsWith() 用来确定一个字符串是否包含在另一个字符串中
  6. 实例方法:repeat() 返回一个新字符串,表示将原字符串重复n次
  7. 实例方法:padStart(),padEnd() 字符串补全长度的功能
  8. 实例方法:trimStart(),trimEnd() 消除空格,映射新字符串。
  9. 实例方法:matchAll() 返回一个正则表达式在当前字符串的所有匹配
  10. 实例方法:replaceAll() 替换
  11. 实例方法:at() 返回参数指定位置的字符

6.正则的扩展

  1. RegExp 构造函数
  2. 字符串的正则方法
  3. u 修饰符
  4. RegExp.prototype.unicode 属性
  5. y 修饰符
  6. RegExp.prototype.sticky 属性
  7. RegExp.prototype.flags 属性
  8. s 修饰符:dotAll 模式
  9. 后行断言
  10. Unicode 属性类
  11. 具名组匹配
  12. 正则匹配索引
  13. String.prototype.matchAll()

7.数值的扩展

  1. 二进制和八进制表示法
  2. 数值分隔符 1_000_000 === 10 ** 6 // true
  3. Number.isFinite(), Number.isNaN() 用来检查是否为有限的(finite),即不是Infinity。检查是否为 NaN
  4. Number.parseInt(), Number.parseFloat() 方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。(目的,逐步减少全局性方法,使得语言逐步模块化。)
  5. Number.isInteger() 是否为整数
  6. Number.EPSILON
  7. 安全整数和 Number.isSafeInteger()
  8. Math 对象的扩展 数字的操作 及 判断 等
  9. BigInt 数据类型

8.函数的扩展

  1. 函数参数的默认值
  2. rest 参数
  3. 严格模式
  4. name 属性 函数名.name
  5. 箭头函数
  6. 尾调用优化
  7. 函数参数的尾逗号
  8. Function.prototype.toString()
  9. catch 命令的参数省略

9.数组的扩展

  1. 扩展运算符
  2. Array.from()
  3. Array.of() 将一组值,转换为数组。
  4. 实例方法:copyWithin() 指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。
  5. 实例方法:find() 和 findIndex()
  6. 实例方法:fill()
  7. 实例方法:entries(),keys() 和 values()
  8. 实例方法:includes()
  9. 实例方法:flat(),flatMap()
  10. 实例方法:at()
  11. 数组的空位
  12. Array.prototype.sort() 的排序稳定性

10.对象的扩展

  1. 属性的简洁表示法
  2. 属性名表达式
  3. 方法的 name 属性
  4. 属性的可枚举性和遍历
  5. super 关键字
  6. 对象的扩展运算符
  7. AggregateError 错误对象

11.对象的新增方法

  1. Object.is()
  2. Object.assign()
  3. Object.getOwnPropertyDescriptors()
  4. proto属性,Object.setPrototypeOf(),Object.getPrototypeOf()
  5. Object.keys(),Object.values(),Object.entries()
  6. Object.fromEntries()

12.运算符的扩展

  1. 指数运算符
  2. 链判断运算符
  3. Null 判断运算符
  4. 逻辑赋值运算符

13.Symbol

  1. 概述
  2. Symbol.prototype.description
  3. 作为属性名的 Symbol
  4. 实例:消除魔术字符串
  5. 属性名的遍历
  6. Symbol.for(),Symbol.keyFor()
  7. 实例:模块的 Singleton 模式
  8. 内置的 Symbol 值

14.Set 和 Map 数据结构

  1. Set (Set 对象类似于数组,且成员的值都是唯一的。)

Set 结构的实例有以下属性
Set.prototype.constructor:构造函数,默认就是Set函数。
Set.prototype.size:返回Set实例的成员总数。
Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。
Set.prototype.add(value):添加某个值,返回 Set 结构本身。
Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
Set.prototype.clear():清除所有成员,没有返回值。
遍历器
Set.prototype.keys():返回键名的遍历器
Set.prototype.values():返回键值的遍历器
Set.prototype.entries():返回键值对的遍历器
Set.prototype.forEach():使用回调函数遍历每个成员

  1. WeakSet
  2. Map (Map 对象是键值对集合,和 JSON 对象类似,但是 key 不仅可以是字符串还可以是对象 方法 boolean 等等)
    m.set(o, 'content')
    m.get(o)
    has(o)
    delete(o)
    size 属性
    Map 结构原生提供三个遍历器生成函数和一个遍历方法。
    Map.prototype.keys():返回键名的遍历器。
    Map.prototype.values():返回键值的遍历器。
    Map.prototype.entries():返回所有成员的遍历器。
    Map.prototype.forEach():遍历 Map 的所有成员。
  3. WeakMap
  4. WeakRef
  5. FinalizationRegistry

15.Proxy

  1. 概述
  2. Proxy 实例的方法
  3. Proxy.revocable()
  4. this 问题
  5. 实例:Web 服务的客户端

16.Reflect

  1. 概述
  2. 静态方法
  3. 实例:使用 Proxy 实现观察者模式

17.Promise 对象

  1. Promise 的含义
  2. 基本用法
  3. Promise.prototype.then()
  4. Promise.prototype.catch()
  5. Promise.prototype.finally()
  6. Promise.all()
  7. Promise.race()
  8. Promise.allSettled()
  9. Promise.any()
  10. Promise.resolve()
  11. Promise.reject()
  12. 应用
  13. Promise.try()

18.Iterator 和 for...of 循环

  1. Iterator(遍历器)的概念
  2. 默认 Iterator 接口
  3. 调用 Iterator 接口的场合
  4. 字符串的 Iterator 接口
  5. Iterator 接口与 Generator 函数
  6. 遍历器对象的 return(),throw()
  7. for...of 循环

19.Generator 函数的语法

  1. 简介
  2. next 方法的参数
  3. for...of 循环
  4. Generator.prototype.throw()
  5. Generator.prototype.return()
  6. next()、throw()、return() 的共同点
  7. yield* 表达式
  8. 作为对象属性的 Generator 函数
  9. Generator 函数的this
  10. 含义
  11. 应用

20.Generator 函数的异步应用

  1. 传统方法
  2. 基本概念
  3. Generator 函数
  4. Thunk 函数
  5. co 模块

21.async 函数

  1. 含义
  2. 基本用法
  3. 语法
  4. async 函数的实现原理
  5. 与其他异步处理方法的比较
  6. 实例:按顺序完成异步操作
  7. 顶层 await

22.Class 的基本语法

  1. 简介
  2. 静态方法
  3. 实例属性的新写法
  4. 静态属性
  5. 私有方法和私有属性
  6. 静态块
  7. new.target 属性

23.Class 的继承

  1. 简介
  2. Object.getPrototypeOf()
  3. super 关键字
  4. 类的 prototype 属性和proto属性
  5. 原生构造函数的继承
  6. Mixin 模式的实现

24.Module 的语法

  1. 概述
  2. 严格模式
  3. export 命令
  4. import 命令
  5. 模块的整体加载
  6. export default 命令
  7. export 与 import 的复合写法
  8. 模块的继承
  9. 跨模块常量
  10. import()

25.Module 的加载实现

  1. 浏览器加载
  2. ES6 模块与 CommonJS 模块的差异
  3. Node.js 的模块加载方法
  4. 循环加载

26.编程风格

  1. 块级作用域
  2. 字符串
  3. 解构赋值
  4. 对象
  5. 数组
  6. 函数
  7. Map 结构
  8. Class
  9. 模块
  10. ESLint 的使用

27.读懂 ECMAScript 规格

  1. 概述
  2. 术语
  3. 抽象操作的标准流程
  4. 相等运算符
  5. 数组的空位
  6. 数组的 map 方法

28.异步遍历器

  1. 同步遍历器的问题
  2. 异步遍历的接口
  3. for await...of
  4. 异步 Generator 函数
  5. yield* 语句

29.ArrayBuffer

  1. ArrayBuffer 对象
  2. TypedArray 视图
  3. 复合视图
  4. DataView 视图
  5. 二进制数组的应用
  6. SharedArrayBuffer
  7. Atomics 对象

30.最新提案

  1. do 表达式
  2. throw 表达式
  3. 函数的部分执行
  4. 管道运算符
  5. Math.signbit()
  6. 双冒号运算符
  7. Realm API
  8. #!命令
  9. import.meta
  10. JSON 模块

31.装饰器

  1. 类的装饰
  2. 方法的装饰
  3. 为什么装饰器不能用于函数?
  4. core-decorators.js
  5. 使用装饰器实现自动发布事件
  6. Mixin
  7. Trait

32.参考链接

  1. 官方文件
  2. 综合介绍
  3. let 和 const
  4. 解构赋值
  5. 字符串
  6. 正则
  7. 数值
  8. 数组
  9. 函数
  10. 对象
  11. Symbol
  12. Set 和 Map
  13. Proxy 和 Reflect
  14. Promise 对象
  15. Iterator
  16. Generator
  17. 异步操作和 Async 函数
  18. Class
  19. Decorator
  20. Module
  21. 二进制数组
  22. SIMD
  23. 工具
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容