fe-interview-handwrite
                                
                                
                                
                                    fe-interview-handwrite copied to clipboard
                            
                            
                            
                        📖 前端面试常见手写题整理
前端面试手写题
整理前端面试常见的手写题,面试出现概率极高,建议每个都过自己过一遍。
你也可以提交 PR,提供你面试遇到的题目。
代码汇总请参照 SUMMARY.md 。
高频:★★★ 中频:★★ 低频:★
JavaScript 原理
- 实现 bind() ★★
 - 实现 apply() ★★
 - 实现 call() ★★
 - 实现 instanceof ★
 - 实现 new ★
 - 实现 jsonp ★★★
 - 实现 Promise ★★★
 - 实现 Promise.all() ★★★
 - 实现 Promise.race() ★
 - 实现 Proxy ★★
 - 实现 EventEmitter 订阅监听模式 ★★
 - setTimout 实现 setInterval ★
 - 深拷贝 ★★★
 
函数
- 函数防抖 ★★★
 - 函数节流 ★★★
 - 函数柯里化(实现 
sum(1,2)(3)()) ★★★ - compose 函数 ★★
 - before 函数 ★
 
数组
- 数组拍平 ★★★
 - 数组去重 ★★★
 - 数组转对象 ★
 
字符串
- 去除字符串首尾空格 ★
 - 下划线驼峰互转 ★
 
数学
- 计算圆周率 ★
 
算法
算法需要掌握基本的数据结构,例如栈、队列、链表、树、排序算法等等,建议去 LeetCode 上刷题。不过不要为了刷题而刷题,最重要的是归纳与总结,刷十道不如一道刷十遍。
- 归并排序 ★★
 - 插入排序 ★
 - 快速排序 ★★★
 - 选择排序 ★
 - 希尔排序 ★
 - 堆排序 ★
 - 二分查找 ★
 - 最长递增子序列 ★★★
 - 最长公共子串 ★★
 - 城市数据找父节点 ★
 - 查找缺失的数 ★
 
分享一下自己整理的 LeetCode 上必刷的题,比较具有代表性。
- [ ] LeetCode 001 Two Sum
 - [ ] LeetCode 015 3Sum(可能会问 LeetCode18.4Sum思路)
 - [ ] LeetCode 020 Valid Parentheses
 - [ ] LeetCode 021 Merge Two Sorted Lists
 - [ ] LeetCode 025 Reverse Nodes in k-group
 - [ ] LeetCode 053 Maximum Subarra
 - [ ] LeetCode 066 Plus One(等介于:高精度加加法)
 - [ ] LeetCode 098 Validate Binary Search Tree
 - [ ] LeetCode 110 Balanced Binary Tree
 - [ ] LeetCode 134 Gas Station
 - [ ] LeetCode 136 Single Number
 - [ ] LeetCode 137 Single Number II
 - [ ] LeetCode 146 LRU Cache(变形题:带有过期时间的LRU缓存)(Map + 链表)
 - [ ] LeetCode 206 Reverse Linked List(递归、迭代)
 - [ ] LeetCode 215 Kth Largest Element in an Array(等价于:快速排序)
 - [ ] LeetCode 232 Implement Queue using Stacks(每次将新来的元素放到栈底,stack.push())
 - [ ] LeetCode 328 Odd Even Linked List
 - [ ] LeetCode 415 Add Strings(等价于:大数加法)
 - [ ] LeetCode 470 rand70rand100
 - [ ] LeetCode 496 Next Greater Element I(时间复杂度O(n)(单调栈,使用 Map 映射 stack 的指定位置)
 - [ ] LeetCode 716 Max Stack(两个栈实现最大栈,要求pop,push, get max都为0(1)
 - [ ] LeetCode 860 Lemonade Change