这是一个收集了前端方面手写题的仓库,适合于前端开发平时拿来练习或者用于准备面试。
题目收集自网络及我在面试中遇到的问题。每道题目有相应的 Jest 测试文件(在 ChatGPT 的帮助下生成),可以用于测试代码的正确性。
使用 npx jest [文件夹名]
来单独测试一道题目,比如 npx jest promise-with-timeout
。
题目列表
call
apply
bind
- 实现一个
new
方法 - 实现一个
instanceof
方法 debounce
throttle
- 实现数组的 flat 方法
- 扁平化一个对象
- 函数柯里化
- 使用
setTimeout
来实现setInterval
- 实现
Promise.all
- 实现
Promise.prototype.finally()
- 实现会超时的 Promise
- 实现 promise #todo
- 实现
promisify
- 深拷贝 deep clone
- 实现 EventEmitter
- 模板字符串生成
- 带并发限制的异步调度器
- 实现数字整数部分的千分位分隔符
- 打乱数组
- 驼峰命名和连字符间的转换
- 将数组转换成树结构
- 比较版本号
- 将 URL 上的 query string 解析为一个对象
- 统计页面上有多少种标签
- 数组去重
- compose #todo