Generator[生成器] 定义 是一个特殊的迭代器,是一种函数控制、使用的方案,它可以让我们更加灵活的 控制函数什么时候执行、暂停执行 生成器函数(1) 定义: function 之后 添加 * 号就是生成器函数,可以搭配 yield 控制代码的执行流程,返回一个生成器(对象)(2) 关键字: yield [控制代码的执行流程] 每一个yield就是一个暂停,yield可以用来返回值(3) 与return 区别 : ret 2022-04-13 JavaScript JavaScript ES6
迭代器 Iterator(迭代器) 定义: 是一个对象,用来帮助我们遍历某一个数据结构 标准[迭代器协议(iterator protocol)]:(1) 必须有一个next函数,并且该函数没有参数或者只有一个参数(2) next函数必须返回一个对象,并且该对象里包含done和value属性 done 属性: 遍历的每一个属性,赋值为false,遍历完成全部属性后,最后会再访问一次,赋值为true,对应 2022-04-13 JavaScript JavaScript ES6
Promise(五) Promise的类方法 定义:可以直接通过Promise类直接调用的方法 Promise.resolve() 使用: 将现有结果直接转变成一个fulfilled状态的promise对象返回const fulPromise = Promise.resolve({name:'nano'}) fulPromise.then( res => 2022-04-13 JavaScript JavaScript ES6 ES11 ES12
Promise(四) catch方法 当executor抛出异常时,catch方法也会捕获异常(throw new Error( )) catch的链式调用默认捕获第一个promise的异常,如果第一个promise没有抛出异常并且.then函数中直接返回promise的对象且该对象抛出了异常,则捕获.then函数返回的promise对象异常 let promiseFn=() => 2022-04-13 JavaScript JavaScript ES6 ES9
Promise(三) then方法 同一个promise的then方法可以调用多次 let fnPromise=() => { return new Promise((resolve,reject) => {resolve('被调用')}) } fnPromise().then(res => 2022-04-13 JavaScript JavaScript ES6
Promise(二) resolve参数 普通参数传递 let promiseFn = ()=>{ return new Promise((resolve,reject)=>{ resolve( { name: 'nano' } ) }) } promiseFn().then( res 2022-04-13 JavaScript JavaScript ES6
Promise(一) 什么是Promise? 是一种解决异步调用的解决方案 基础调用 声明Promiselet promiseFn=() => { return new Promise((resolve,reject) => { setTimeout(() => { let num=M 2022-04-13 JavaScript JavaScript ES6
Reflect 定义 它是一个对象,主要提供了很多操作js对象的方法,像Object中操作对象的方法,一般都通过内置的方法进行操作 使用场景: 和Proxy搭配使用 Q: 那为什么要用Reflect而不是Object?A: Object为构造函数,这些操作不合适,并且还包含了in、delete操作符,让JS看起来会有一些奇怪 注意: 如果可以使用Reflect那么尽量使用Reflect Reflect常见 2022-04-13 JavaScript JavaScript ES6
监听对象的方式 监听对象的操作 Object.defineProperty( obj,key, { get(){}, set(){}} )/* 监听对象的所有属性 */ let obj = { name: 'nano', age: 18 } Object.keys.forEach( item => { let valu 2022-04-13 JavaScript JavaScript ES6
ES12常用语法 FinalizationRegistry (类) 定义:用来监听GC之前的回调 使用: 通过声明FinalizationRegistry类,调用原型上的register方法检测GC回收之前的状态const finalRegistry = new FinalizationRegistry( (objName)=>{ console.log(objName + 2022-04-13 JavaScript JavaScript ES12