ES6与ES7
jwz934738949
这个作者很懒,什么都没留下…
展开
-
Promise.all
Promise.all()接受一个promise对象的数组,当所有promise对象都变成resolve状态或者有一个变成reject状态时,才会调用then方法Promise.all()接受一个promise实例的数组或者Iterator接口的对象如果元素不是promise对象,使用promise.resolve转为Promise对象Promise.all()的返回值也是一个Promise对象实现Promise.all方法 function promiseAll(promises) { .原创 2021-07-10 15:30:46 · 206 阅读 · 0 评论 -
深拷贝与浅拷贝
定义在进行数据的拷贝时,首先需要注意数据的类型是基本数据类型还是引用数据类型在拷贝基本数据类型时,不需要考虑浅拷贝还是深拷贝,不论是浅拷贝还是深拷贝,修改复制后的数据不会影响原数据但是引用数据类型不是,当修改拷贝之后的数据时,会对原数据产生影响,所以需要使用深拷贝来避免原始数据的改变拷贝方法浅拷贝直接使用=赋值Object.assign()Array.prototype.slice()Array.prototype.concat()深拷贝JSON.parse(JSON.s原创 2021-07-04 15:11:59 · 111 阅读 · 0 评论 -
ES6扩展
数组扩展Array.from(arr): 将伪数组对象或者是可遍历对象转为数组类型Array.of(…value): 将一系列值转为一个数组find(function(value, index, arr) {return true}): 找出第一个符合条件返回true的值findIndex(function(value, index, arr) {return true}): 找出第一个符合条件返回true的下标 // Array.from(arr) let btns =原创 2021-07-04 15:11:25 · 67 阅读 · 0 评论 -
class
特点在ES6中,出现了新的关键字class,用来创建一个类。通过class关键字实现类的实现或者继承在类中使用constructor来定义构造方法通过new来创建对应的实例对象通过extends继承父类,使用super方法实现父类构造方法的调用可以重写父类中的一般方法 class Person { constructor(name, age) { this.name = name; this.age = age;原创 2021-07-04 15:10:44 · 79 阅读 · 0 评论 -
async与await
概念async与await是在ES7中提出的异步函数用来解决异步回调的问题,同步流程表达异步操作async与await为Generator函数的语法糖。async代表Generator中的*,await代表yield特点不需要像Generator函数一样,为了执行必须去调用next方法。遇到await时等待,当前异步操作完成之后会自动向下执行返回的是Promise对象,可以使用then来执行下一步操作 async function testAsync() {原创 2021-07-04 15:10:11 · 90 阅读 · 0 评论 -
Generator
概念ES6提供的解决异步编程的方案之一Generator函数是一个状态机,内部封装了不同状态的数据用来生成遍历器对象惰性求值。可以暂停函数,yield可以暂停函数,而next方法可以启动函数,返回值为yield之后的返回结果特点function与函数名之间有一个符号*内部使用yield来定义不同的状态generator函数返回的是指针对象,而不会执行函数内部逻辑调用next方法会从函数内部逻辑开始执行,遇到yield就停止,返回{value:yield之后的表达式结果/undefin原创 2021-07-04 15:09:41 · 65 阅读 · 0 评论 -
Iterator
概念iterator是一种接口机制,为各种不同的数据结构提供统一的访问机制作用为各种数据结构,提供一个统一的、简便的访问接口使得数据结构的成员能够按某种次序排列Iterator接口主要供for of消费工作原理创建一个指针对象,指向数据结构的起始位置第一次调用next方法,指针自动指向数据结构的第一个位置接下来不断调用next方法,指针自动后移,直到指向最后一个成员每调用一次next方法,都会返回一个对象。对象包含value与done两个属性,value为指针所指向成员的值,而原创 2021-07-04 15:09:06 · 90 阅读 · 0 评论 -
Symbol
概念Symbol是在ES6中新定义的一个原始数据类型,与Number、String、Boolean、null、undefined同为原始数据类型特点Symbol属性对应的值是唯一的,可以解决命名冲突问题Symbol不能够与其他数据进行运算,包括字符串之间的拼接for in与for of无法遍历Symbol属性 // 创建Symbol let symbol = Symbol() let stu = { username: "测试名称", ag原创 2021-07-04 15:05:08 · 68 阅读 · 0 评论