1、引用计数是指语言引擎有一个引用表,它保存了内存中所有资源的引用次数。若一个值的引用次数为0,则表表示该值不再使用,因此可以释放该内存。如果一个值不再需要了,引用数却不为0,垃圾回收机制无法释放这块内存,从而导致内存泄漏。vararr=[1,2
2023-02-26所谓异步,简单来说就是一个任务分为两段,先执行第一段,再执行其他任务。当第一段有执行结果时,回到第二段。原因1、JavaScript是单线程。2、为了提高CPU的利用率。它不仅提高了CPU的利用率,而且增加了开发难度,特别是代码的可读性。实例console.
2023-02-26说明1、promise是一个有then方法的对象或函数。2、promise有三种状态:pending、rejected、resolved状态一旦确定就无法改变。只能从pending状态转变为rejected或resolved状态,reject和resolved状态无法相互转换。promise实例中有then方法,它
2023-02-261、在promise的then方法中,已经自动帮助我们try catch回调函数。Promise.prototype.then=function(cb){ try{ cb() }catch(e){ //todo reject(e) } }2、then方法中抛出的异常,将被下一级联then方法的第二个参数捕获。Promise.prototype.done
2023-02-26局限说明1、promise有一个局限性,就是不能停止promise链。2、当promise链中的某个环节出现错误时,就没有必要继续向下执行,但promise并没有提供原始的取消方式。我们可以看到,即使抛出了异常,promise链也不会停止。尽管我们可以使用返回pending
2023-02-26说明1、如果一个任务依赖于多个异步任务时,可以使用Promise.all。2、如果任务依赖于多个异步任务中的任何一个,那么Promise.race就无所谓了。实例vardefer=function(){ varpending=[],value; return{ resolve:function(_value){ value=_valu
2023-02-26说明1、可以看到async/await的写法与generator非常相似。2、async/await是generator的语法糖,只是内置了执行器。当执行过程中出现异常时,将停止继续执行。await后面必须连接promise,node版本必须>=7.6.0才能使用,当然低版本也可以使用babel。
2023-02-26说明1、同步回调是在使用回调的高阶函数执行期间执行的。2、同步回调处于阻塞状态:高阶函数要等到回调完成执行后才能完成其执行。greet()是一个同步回调函数,因为它与高阶函数map()同时执行。实例functionmap(array,callback){ console.log
2023-02-26说明1、异步回调在执行高阶函数之后执行。是非阻塞的:高阶函数无需等待回调即可完成其执行,高阶函数可确保稍后在特定事件上执行回调。2、DOM事件监听器也是异步调用事件处理函数。即回调函数的一种子类型。实例console.log('setTimeout
2023-02-26说明1、如果某个元素符合条件,some返回true,循环中断。如果所有元素都不符合条件,则返回false。2、与some相反,every如果有益元素不符合条件,返回false,循环中断。所有元素都符合条件,返回true。两者都是用来判断数组条件的,都是返回一个布尔值。
2023-02-26说明1、flat()接受可选参数,该参数指定的嵌套数组应展平。如果没有提供参数,默认值1:如果输入Infinity参数,无论多少维数组都会展平。2、flatMap()将map()和flat()结合成一种方法。使用提供函数的返回值创建新的数组,然后连接该数组的所有子数
2023-02-261、unshift()在数组开头插入元素,把一个或多个参数值附加到数组的头部。array.unshift(元素1,元素2,...,元素X)实例vara=[0];//定义数组 console.log(a);//返回[0] a.unshift(1,2);//一次性增加两个元素 console.log(a);//返回[1,2,0] vara
2023-02-26发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-07人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-08人气:0
发布日期:2023-08-10人气:0
发布日期:2023-08-10人气:0