ES6总结
var、let、const之间的区别
- 块级作用域:var不存在块级作用域 let和const存在块级作用域
- 重复声明:var允许重新声明变量 let和const在同一作用域中不允许重复声明变量
- 修改声明的变量:var和let可以 const声明一个只读的常量。一旦声明,常量的值就不能改变
- 变量提升:var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined, let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错
数组新增了哪些扩展
- 扩展运算符...
- find()、findIndex()
- includes()
- entries(),keys(),values()
- flat(): 数组扁平化
对象新增了哪些扩展
- super关键字:指向当前对象的原型对象
- Object.is():判断两个值是否相等
- Object.assign(): 对象合并
- Object.keys(): 返回自身的(不含继承的)所有可遍历(enumerable)属性的键名的数组
- Object.values(): 返回自身的(不含继承的)所有可遍历(enumerable)属性的键对应值的数组
- Object.entries(): 返回一个对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对的数组
Set和Map的理解
- Set: 一种数据结构 成员的值都是唯一的 没有重复的值,叫做集合
- Map: 键值对的有序列表,而键和值都可以是任意类型,叫做字典
- 共同点:集合、字典都可以存储不重复的值
- 不同点:集合是以【值,值】的形式存储元素,字典是以【键,值】的形式存储
对Promise的理解
- Promise: 异步编程的一种解决方案,避免回调地狱, 代码可读性增强,链式操作降低了编码难度
- Promise.all(): 将多个promise实例,包装成一个新的promise实例,多个实例状态都改变, 则新的实例状态改变
- Promise.race(): 有一个实例率先改变状态,则新的实例状态改变