自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 前端面试 | 浅拷贝和深拷贝(基于引用类型)

总结:WeakMap 适合存储那些仅当对象存在时才有意义的数据,比如临时缓存、私有属性等场景,可以避免内存泄漏。而 Map 则适用于需要遍历、需要长期保留数据的场景。深拷贝:慢,开销大,需要遍历所有节点。直接赋值不可行,我们需要一个新对象。手写deepClone:思路分析。现代web api的推荐选择。

2026-02-16 14:22:19 776

原创 前端面试 | 用setTimeout实现setInterval

本文介绍了如何用setTimeout模拟实现setInterval的方法。主要内容包括:1)setTimeout和setInterval的区别:前者只执行一次,后者重复执行;2)setInterval的缺陷:当任务执行时间超过间隔时间时会导致任务堆积;3)实现方法:通过递归调用setTimeout,并包裹内部函数来避免参数传递问题。正确实现的关键是要确保每次都在任务队列中调度下一次执行,而非直接递归调用。这种方法能更精确地控制任务间隔,避免任务堆积问题。

2025-10-05 15:04:43 496

原创 前端面试 | 手写apply,call,bind代码

本文详细讲解了如何手动实现JavaScript中的call、apply和bind方法。核心思路是:1)通过将函数临时挂载到目标对象上,实现this指向改变;2)使用Symbol作为临时属性名避免污染原对象;3)正确处理参数传递。重点分析了bind方法的难点:如何既保持原型链继承又避免污染原函数原型,其中通过空函数o作为中间桥梁是关键。文章以工厂和笔记本为比喻,生动解释了bind方法中this绑定、参数合并和原型继承的复杂机制,并提供了完整代码实现和详细注释。

2025-10-04 17:16:30 805 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除