ES6总结

41 阅读2分钟

var、let、const之间的区别

  1. 块级作用域:var不存在块级作用域 let和const存在块级作用域
  2. 重复声明:var允许重新声明变量 let和const在同一作用域中不允许重复声明变量
  3. 修改声明的变量:var和let可以 const声明一个只读的常量。一旦声明,常量的值就不能改变
  4. 变量提升:var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined, let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错

数组新增了哪些扩展

  1. 扩展运算符...
  2. find()、findIndex()
  3. includes()
  4. entries(),keys(),values()
  5. flat(): 数组扁平化

对象新增了哪些扩展

  1. super关键字:指向当前对象的原型对象
  2. Object.is():判断两个值是否相等
  3. Object.assign(): 对象合并
  4. Object.keys(): 返回自身的(不含继承的)所有可遍历(enumerable)属性的键名的数组
  5. Object.values(): 返回自身的(不含继承的)所有可遍历(enumerable)属性的键对应值的数组
  6. Object.entries(): 返回一个对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对的数组

Set和Map的理解

  1. Set: 一种数据结构 成员的值都是唯一的 没有重复的值,叫做集合
  2. Map: 键值对的有序列表,而键和值都可以是任意类型,叫做字典
  3. 共同点:集合、字典都可以存储不重复的值
  4. 不同点:集合是以【值,值】的形式存储元素,字典是以【键,值】的形式存储

对Promise的理解

  1. Promise: 异步编程的一种解决方案,避免回调地狱, 代码可读性增强,链式操作降低了编码难度
  2. Promise.all(): 将多个promise实例,包装成一个新的promise实例,多个实例状态都改变, 则新的实例状态改变
  3. Promise.race(): 有一个实例率先改变状态,则新的实例状态改变