回调函数
-
JavaScript中什么是垃圾回收机制_内存泄漏场景
JavaScript垃圾回收通过标记-清除自动释放不可达对象内存,但全局变量残留、未清除定时器、未解绑事件监听器、闭包过度持有及控制台日志等会导致内存泄漏。 JavaScript 的垃圾回收机制(Garbage Collection,GC)是引擎自动管理内存的过程:它会定期识别并释放那些**不再被程…
-
javascript计时器如何使用_setTimeout和setInterval有何区别?
setTimeout只执行一次,setInterval周期性重复执行;前者适用于延时操作如防抖,后者用于轮询或倒计时,但需clearInterval手动清除以防内存泄漏。 JavaScript 中的 setTimeout 和 setInterval 都是用来延迟或周期性执行代码的计时器函数,核心区别…
-
javascript如何实现发布订阅_它与观察者模式有何不同
发布订阅模式通过事件中心实现发布者与订阅者完全解耦,核心是维护事件名到回调数组的映射,支持on、emit、off操作;而观察者模式中被观察者直接持有观察者列表,耦合度更高。 JavaScript 中的发布订阅模式(Pub/Sub)是一种松耦合的事件通信机制,核心是通过一个“事件中心”来中介发布者和订…
-
JavaScript中什么是高阶函数_map_filter如何使用
高阶函数是接收函数作为参数的函数,如map、filter、reduce、sort等;filter筛选返回true的元素生成新数组,map将每个元素映射为新值生成等长新数组,二者均不修改原数组且可链式调用。 高阶函数就是把函数当参数传进去的函数。map、filter 是最常用也最典型的两个,它们不改原…
-
JavaScript find和findIndex如何用_它们如何查找元素?
find返回第一个匹配元素值,findIndex返回其索引;均不修改原数组,找到即停,未找到时分别返回undefined和-1。 find 和 findIndex 是数组方法,用来按条件查找元素——find 返回第一个匹配的**元素值**,findIndex 返回它的**下标(索引)**。它们不修改…
-
JavaScript异步编程是什么_回调函数怎么用?
JavaScript异步编程本质是避免阻塞主线程,通过回调函数在操作完成后通知执行结果;回调可具名、匿名或箭头函数,遵循错误优先约定(err在前),多层嵌套导致回调地狱,可用Promise或async/await优化。 JavaScript异步编程,本质是让程序不卡在耗时操作上——比如发请求、读文件…
-
javascript异步是什么_回调函数和promise有何不同
JavaScript异步机制通过不阻塞主线程来保持页面响应流畅,核心方案包括回调函数(易导致回调地狱、错误分散)和Promise(用状态管理与链式调用解决嵌套、集中捕获错误、支持并发)。 JavaScript异步是指不阻塞主线程、让代码在等待耗时操作(比如网络请求、文件读取、定时器)完成时,仍能继续…
-
javascript中的Promise是什么_如何使用它处理异步操作
Promise是JavaScript中处理异步操作的对象,代表未来完成或失败的结果;具有pending、fulfilled、rejected三种不可逆状态;通过new Promise创建,支持链式调用、错误捕获及Promise.all等静态方法。 Promise 是 JavaScript 中用于处理…
-
为什么javascript箭头函数没有this_它适合哪些场景?
箭头函数没有自己的this,而是词法绑定外层作用域的this值;普通函数的this在调用时动态确定,箭头函数则跳过绑定直接沿作用域链查找,设计目的是简化回调中this的捕获。 箭头函数没有自己的 this,是因为它不绑定 this,而是继承外层作用域的 this 值。这不是“没有”,而是“不重新绑定…
-
javascript如何归并数组_ reduce怎么用
reduce是JavaScript归并数组最常用灵活的方法,通过设置初始值为[]并用concat或扩展运算符合并子数组,可实现扁平化、条件筛选及对象属性聚合等操作。 JavaScript 中归并数组最常用、最灵活的方式就是 reduce 方法。它不是专为“合并数组”设计的,但通过合理设置初始值和累加…