这是一个收集了前端方面手写题的仓库,适合于前端开发平时拿来练习或者用于准备面试。

题目收集自网络及我在面试中遇到的问题。每道题目有相应的 Jest 测试文件(在 ChatGPT 的帮助下生成),可以用于测试代码的正确性。

使用 npx jest [文件夹名] 来单独测试一道题目,比如 npx jest promise-with-timeout

题目列表

  1. call
  2. apply
  3. bind
  4. 实现一个 new 方法
  5. 实现一个 instanceof 方法
  6. debounce
  7. throttle
  8. 实现数组的 flat 方法
  9. 扁平化一个对象
  10. 函数柯里化
  11. 使用 setTimeout 来实现 setInterval
  12. 实现 Promise.all
  13. 实现 Promise.prototype.finally()
  14. 实现会超时的 Promise
  15. 实现 promise #todo
  16. 实现 promisify
  17. 深拷贝 deep clone
  18. 实现 EventEmitter
  19. 模板字符串生成
  20. 带并发限制的异步调度器
  21. 实现数字整数部分的千分位分隔符
  22. 打乱数组
  23. 驼峰命名和连字符间的转换
  24. 将数组转换成树结构
  25. 比较版本号
  26. 将 URL 上的 query string 解析为一个对象
  27. 统计页面上有多少种标签
  28. 数组去重
  29. compose #todo