1.ECMAScript 6 简介
2.let 和 const 命令
3.变量的解构赋值
4.字符串的扩展
5.字符串的新增方法
- String.fromCodePoint()
- String.raw()
- 实例方法:codePointAt()
- 实例方法:normalize()
- 实例方法:includes(), startsWith(), endsWith() 用来确定一个字符串是否包含在另一个字符串中
- 实例方法:repeat() 返回一个新字符串,表示将原字符串重复n次
- 实例方法:padStart(),padEnd() 字符串补全长度的功能
- 实例方法:trimStart(),trimEnd() 消除空格,映射新字符串。
- 实例方法:matchAll() 返回一个正则表达式在当前字符串的所有匹配
- 实例方法:replaceAll() 替换
- 实例方法:at() 返回参数指定位置的字符
6.正则的扩展
- RegExp 构造函数
- 字符串的正则方法
- u 修饰符
- RegExp.prototype.unicode 属性
- y 修饰符
- RegExp.prototype.sticky 属性
- RegExp.prototype.flags 属性
- s 修饰符:dotAll 模式
- 后行断言
- Unicode 属性类
- 具名组匹配
- 正则匹配索引
- String.prototype.matchAll()
7.数值的扩展
- 二进制和八进制表示法
- 数值分隔符 1_000_000 === 10 ** 6 // true
- Number.isFinite(), Number.isNaN() 用来检查是否为有限的(finite),即不是Infinity。检查是否为 NaN
- Number.parseInt(), Number.parseFloat() 方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。(目的,逐步减少全局性方法,使得语言逐步模块化。)
- Number.isInteger() 是否为整数
- Number.EPSILON
- 安全整数和 Number.isSafeInteger()
- Math 对象的扩展 数字的操作 及 判断 等
- BigInt 数据类型
8.函数的扩展
- 函数参数的默认值
- rest 参数
- 严格模式
- name 属性 函数名.name
- 箭头函数
- 尾调用优化
- 函数参数的尾逗号
- Function.prototype.toString()
- catch 命令的参数省略
9.数组的扩展
- 扩展运算符
- Array.from()
- Array.of() 将一组值,转换为数组。
-
实例方法:copyWithin() 指定位置的成员复制到其他位置(会覆盖原有成员),然后
返回当前数组。
- 实例方法:find() 和 findIndex()
- 实例方法:fill()
- 实例方法:entries(),keys() 和 values()
- 实例方法:includes()
- 实例方法:flat(),flatMap()
- 实例方法:at()
- 数组的空位
- Array.prototype.sort() 的排序稳定性
10.对象的扩展
11.对象的新增方法
- Object.is()
- Object.assign()
- Object.getOwnPropertyDescriptors()
- proto属性,Object.setPrototypeOf(),Object.getPrototypeOf()
- Object.keys(),Object.values(),Object.entries()
- Object.fromEntries()
12.运算符的扩展
13.Symbol
- 概述
- Symbol.prototype.description
- 作为属性名的 Symbol
- 实例:消除魔术字符串
- 属性名的遍历
- Symbol.for(),Symbol.keyFor()
- 实例:模块的 Singleton 模式
- 内置的 Symbol 值
14.Set 和 Map 数据结构
-
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():使用回调函数遍历每个成员
- WeakSet
-
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 的所有成员。 - WeakMap
- WeakRef
- FinalizationRegistry
15.Proxy
16.Reflect
17.Promise 对象
- Promise 的含义
- 基本用法
- Promise.prototype.then()
- Promise.prototype.catch()
- Promise.prototype.finally()
- Promise.all()
- Promise.race()
- Promise.allSettled()
- Promise.any()
- Promise.resolve()
- Promise.reject()
- 应用
- Promise.try()
18.Iterator 和 for...of 循环
- Iterator(遍历器)的概念
- 默认 Iterator 接口
- 调用 Iterator 接口的场合
- 字符串的 Iterator 接口
- Iterator 接口与 Generator 函数
- 遍历器对象的 return(),throw()
- for...of 循环
19.Generator 函数的语法
- 简介
- next 方法的参数
- for...of 循环
- Generator.prototype.throw()
- Generator.prototype.return()
- next()、throw()、return() 的共同点
- yield* 表达式
- 作为对象属性的 Generator 函数
- Generator 函数的this
- 含义
- 应用