前端工程师的自检清单|数据结构和算法

38 阅读2分钟

四、数据结构和算法

这不是考研必备吗

据我了解的大部分前端对这部分知识有些欠缺,甚至抵触,但是,如果突破更高的天花板,这部分知识是必不可少的,而且我亲身经历——非常有用!

JavaScript编码能力

  • 1.多种方式实现数组去重、扁平化、对比优缺点
  • 2.多种方式实现深拷贝、对比优缺点
  • 3.手写函数柯里化工具函数、并理解其应用场景和优势
  • 4.手写防抖和节流工具函数、并理解其内部原理和应用场景
  • 5.实现一个sleep函数

手动实现前端轮子

  • 1.手动实现call、apply、bind
  • 2.手动实现符合Promise/A+规范的Promise、手动实现async await
  • 3.手写一个EventEmitter实现事件发布、订阅
  • 4.可以说出两种实现双向绑定的方案、可以手动实现
  • 5.手写JSON.stringify、JSON.parse
  • 6.手写一个模版引擎,并能解释其中原理
  • 7.手写懒加载、下拉刷新、上拉加载、预加载等效果

数据结构

  • 1.理解常见数据结构的特点,以及他们在不同场景下使用的优缺点
  • 2.理解数组、字符串的存储原理,并熟练应用他们解决问题
  • 3.理解二叉树、栈、队列、哈希表的基本结构和特点,并可以应用它解决问题
  • 4.了解图、堆的基本结构和使用场景

算法

  • 1.可计算一个算法的时间复杂度和空间复杂度,可估计业务逻辑代码的耗时和内存消耗
  • 2.至少理解五种排序算法的实现原理、应用场景、优缺点,可快速说出时间、空间复杂度
  • 3.了解递归和循环的优缺点、应用场景、并可在开发中熟练应用
  • 4.可应用回溯算法、贪心算法、分治算法、动态规划等解决复杂问题
  • 5.前端处理海量数据的算法方案

这里是出处