# js_practice **Repository Path**: ppshux/js_practice ## Basic Information - **Project Name**: js_practice - **Description**: 练习JavaScript准备面试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-26 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 字节飞书前端 · JavaScript 手写题练习 按模块分文件练习,每道题有题目说明和空函数骨架,在对应 `.js` 里实现即可。 ## 模块索引 | 模块 | 路径 | 题目 | |------|------|------| | 1. 函数与 this | `01-call-apply-bind/` | 手写 call、apply、bind | | 2. 原型与 new | `02-new-instanceof/` | 手写 new、手写 instanceof | | 3. Promise | `03-promise/` | 手写 Promise、Promise.all、Promise.race、allSettled | | 4. 防抖与节流 | `04-debounce-throttle/` | 手写 debounce、throttle | | 5. 深拷贝 | `05-deep-clone/` | 手写深拷贝(考虑循环引用、Symbol、Date 等) | | 6. 数组方法 | `06-array/` | 扁平化、去重、map/filter/reduce、flatMap | | 7. 柯里化与组合 | `07-curry-compose/` | 手写 curry、compose、pipe | | 8. 事件与设计模式 | `08-event/` | 发布订阅、EventEmitter、LRU 缓存 | | 9. 算法(LeetCode 向) | `09-algorithm/` | 按题型:数组/双指针、字符串、链表、二叉树、DP、滑动窗口、二分 | ## 使用方式 1. 打开对应模块下的 `.js` 文件; 2. 阅读文件顶部的题目说明; 3. 在标注 `// TODO: 你的实现` 处完成代码; 4. 用 Node 或浏览器运行/断点调试验证。 建议顺序:01 → 02 → 04 → 05 → 06 → 07 → 03 → 08(Promise 和事件稍难,可放后面)。 祝面试顺利。