{"id":19637978,"url":"https://github.com/mayandev/fe-interview-handwrite","last_synced_at":"2025-04-05T03:09:56.631Z","repository":{"id":41200067,"uuid":"303731741","full_name":"Mayandev/fe-interview-handwrite","owner":"Mayandev","description":"📖 前端面试常见手写题整理","archived":false,"fork":false,"pushed_at":"2023-12-24T01:35:12.000Z","size":67,"stargazers_count":441,"open_issues_count":6,"forks_count":74,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-29T02:05:33.456Z","etag":null,"topics":["interview","interview-questions","leetcode"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mayandev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-13T14:33:30.000Z","updated_at":"2025-03-24T01:39:21.000Z","dependencies_parsed_at":"2024-11-11T12:40:23.316Z","dependency_job_id":"610f2ba5-0034-4bb6-8410-8296ca6bff43","html_url":"https://github.com/Mayandev/fe-interview-handwrite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mayandev%2Ffe-interview-handwrite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mayandev%2Ffe-interview-handwrite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mayandev%2Ffe-interview-handwrite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mayandev%2Ffe-interview-handwrite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mayandev","download_url":"https://codeload.github.com/Mayandev/fe-interview-handwrite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280272,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["interview","interview-questions","leetcode"],"created_at":"2024-11-11T12:37:18.983Z","updated_at":"2025-04-05T03:09:56.612Z","avatar_url":"https://github.com/Mayandev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 前端面试手写题\n\n整理前端面试常见的手写题，面试出现概率极高，建议每个都过自己过一遍。\n\n你也可以提交 PR，提供你面试遇到的题目。\n\n代码汇总请参照 [SUMMARY.md](./SUMMARY.md) 。\n\n**高频**：★★★ \u003c/br\u003e\n**中频**：★★ \u003c/br\u003e\n**低频**：★ \u003c/br\u003e\n\n## JavaScript 原理\n\n- [实现 bind()](./src/bind.js) ★★\n- [实现 apply()](./src/apply.js) ★★\n- [实现 call()](./src/call.js) ★★\n- [实现 instanceof](./src/instanceof.js) ★\n- [实现 new](./src/new.js) ★\n- [实现 jsonp](./src/jsonp.js) ★★★\n- [实现 Promise](./src/promise.js) ★★★\n- [实现 Promise.all()](./src/promiseAll.js) ★★★\n- [实现 Promise.race()](./src/promiseRace.js) ★\n- [实现 Proxy](./src/proxy.js) ★★\n- [实现 EventEmitter 订阅监听模式](./src/subscribe.js) ★★\n- [setTimout 实现 setInterval](./src/interval.js) ★\n- [深拷贝](./src/deepclone.js)  ★★★\n\n\n### 函数\n\n- [函数防抖](./src/debounce.js) ★★★\n- [函数节流](./src/throttle.js) ★★★\n- [函数柯里化（实现 `sum(1,2)(3)()`）](./src/curry.js) ★★★\n- [compose 函数](./src/compose.js) ★★\n- [before 函数](./src/before.js) ★\n\n\n## 数组\n\n- [数组拍平](./src/flatten.js) ★★★\n- [数组去重](./src/unique.js) ★★★\n- [数组转对象](./src/array2Object.js) ★\n\n## 字符串\n\n- [去除字符串首尾空格](./src/trim.js) ★\n- [下划线驼峰互转](./src/camel.js) ★\n\n## 数学\n\n- [计算圆周率](./src/pi.js) ★\n\n## 算法\n\n算法需要掌握基本的数据结构，例如栈、队列、链表、树、排序算法等等，建议去 [LeetCode](https://leetcode-cn.com/) 上刷题。不过不要为了刷题而刷题，最重要的是归纳与总结，**刷十道不如一道刷十遍。**\n\n- [归并排序](./src/mergeSort.js) ★★\n- [插入排序](./src/insertionSort.js) ★\n- [快速排序](./src/quickSort.js) ★★★\n- [选择排序](./src/selectionSort.js) ★\n- [希尔排序](./src/shellSort.js) ★\n- [堆排序](./src/heapSort.js) ★\n- [二分查找](./src/binarySearch.js) ★\n- [最长递增子序列](./src/lis.js) ★★★\n- [最长公共子串](./src/longestCommonPrefix.js) ★★\n- [城市数据找父节点](./src/city.js) ★\n- [查找缺失的数](./src/missingNumber.js) ★\n\n\n分享一下自己整理的 LeetCode 上必刷的题，比较具有代表性。\n\n- [ ] LeetCode 001 Two Sum\n- [ ] LeetCode 015 3Sum(可能会问 LeetCode18.4Sum思路)\n- [ ] LeetCode 020 Valid Parentheses\n- [ ] LeetCode 021 Merge Two Sorted Lists\n- [ ] LeetCode 025 Reverse Nodes in k-group\n- [ ] LeetCode 053 Maximum Subarra\n- [ ] LeetCode 066 Plus One(等介于:高精度加加法)\n- [ ] LeetCode 098 Validate Binary Search Tree\n- [ ] LeetCode 110 Balanced Binary Tree\n- [ ] LeetCode 134 Gas Station\n- [ ] LeetCode 136 Single Number\n- [ ] LeetCode 137 Single Number II\n- [ ] LeetCode 146 LRU Cache(变形题:带有过期时间的LRU缓存)（Map + 链表）\n- [ ] LeetCode 206 Reverse Linked List（递归、迭代）\n- [ ] LeetCode 215 Kth Largest Element in an Array(等价于:快速排序)\n- [ ] LeetCode 232 Implement Queue using Stacks(每次将新来的元素放到栈底，stack.push())\n- [ ] LeetCode 328 Odd Even Linked List\n- [ ] LeetCode 415 Add Strings(等价于:大数加法)\n- [ ] LeetCode 470 rand70rand100\n- [ ] LeetCode 496 Next Greater Element I(时间复杂度O(n)(单调栈，使用 Map 映射 stack 的指定位置)\n- [ ] LeetCode 716 Max Stack(两个栈实现最大栈,要求pop,push, get max都为0(1)\n- [ ] LeetCode 860 Lemonade Change\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayandev%2Ffe-interview-handwrite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayandev%2Ffe-interview-handwrite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayandev%2Ffe-interview-handwrite/lists"}