ES6语言编程
请务必熟练使用ES6
let and const
作用域的概念
在ES5,有两个作用域,全局作用域以及函数作用域,而在ES6中添加了块级作用域(花括号中)如何使用let和const
解构赋值
什么是解构赋值? 总而言之就是两边对应结构,赋值
解构赋值的分类: 数组,对象,字符串,布尔值, 函数参数, 数值
正则表达式扩展
- 正则新增特性:构造函数的变化,正则方法的扩展,u修饰符(识别unicode),y修饰符(与g修饰符的区别),s修饰符(可以识别换行符,回车符、行分隔符)
字符串扩展
- 字符串新增特性:unicode表示法,遍历接口,模板字符串,新增方法
数值扩展
- 新增方法,方法调整
数组扩展
- 数组新增特性:Array.from, Array.of, copyWithin, find/findIndex, fill, entries\keys\values, includes
函数扩展
- 函数新增特性:参数默认值,rest参数,扩展运算符,箭头函数,this绑定,尾调用
对象扩展
- 对象新增特性:简洁表示法,属性表达式,扩展运算符,Object新增方法
Symbol
Symbol的概念:独一无二的值,声明的值永远不相等。
Symbol的作用:保证声明的值是唯一的。
for…in无法获取symbol属性以及for…of也无法获取
getgetOwnPropertySymbols只取出symbol属性
Reflect.ownKeys(obj)包含symbol以及非symbol
数据结构Map-Set
Set,可以理解是数组,但不可以重复
WeakSet,Set的弱引用,严格版
Map,可以理解是Object,但key可以是任何的数据类型而不仅仅是字符串
WeakMap,Map的弱引用,严格版
Map\Set和Array\Object的区别
- 优先级 Map > Set > Array > Object
Proxy和Reflect
Proxy和Reflect的概念
Proxy和Reflect的使用场景
类
- 类的概念:基本语法、类的继承、静态方法、静态属性、getter、setter
Pomise
- 什么是异步
A执行完 => B (回调,事件触发,promise) Promise的作用
Promise的基本用法
Promise.all([]), Promise.race([]).
Iterator
什么是Iterator接口,[Symbol.iterator]
Iterator的基本用法
for… of得到的是value值
所有的Iterator接口都定义在[Symbol.iterator]属性上
Generator
- 基本概念:异步编程的一种解决方案:回调,promise,
遍历器生成函数。 next函数的用法
yield*的语法
返回的就是一个Iterator
最大优势:状态机。概念,
Generator函数,async语法,async,await
两个小实例:抽奖count,长轮询
Decorator
基本概念,修饰器是一个函数,用来修改类的行为
基本用法:
module
基本概念
ES6的模块化语法[commonJS,sea.js,require.js]
import,export