面试题
Coder小鹿
前端小白程序员一枚,略略略~
展开
-
请分别用深度优先思想和广度优先思想实现一个拷贝函数? 每日一题系列(六)
前言 在前一篇已经介绍过了深度优先和广度优先 现在想通过这两个去实现一个深拷贝 深拷贝需要注意一些问题:环状数据 先了解过什么是环状数据后,再来进行深拷贝的实现 环状数据 相信大多数人都是第一次听说这个词,其实挺好理解的,先上代码看一看 const obj = { foo: { name: 'foo', bar: { name: 'bar' baz: { name: 'baz', aChild: null //待会让它指向obj.原创 2020-09-12 10:19:44 · 1143 阅读 · 0 评论 -
介绍下深度优先遍历和广度优先遍历,如何实现? 每日一题系列(五)
前言 深度优先遍历,广度优先遍历,基本上前端人员是很少听说过的,应用场景挺少,并且也没怎么接触过数据结构,因此会觉得陌生 应用场景可用于实现深拷贝 所以这题目可以只做个了解,其实实现也是挺简单的,无非是一个栈,一个队列 深度优先遍历 深度优先遍历DFS 与树的先序遍历比较类似。 假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起原创 2020-09-11 10:12:10 · 1010 阅读 · 0 评论 -
介绍下 Set、Map、WeakSet 和 WeakMap 的区别?每日一题系列(四)
前言 Set、Map、WeakSet、WeakMap都是ES6新增的数据结构 这里只是说说区别,之后会根据ES6的规范来对其详细的特性和方法等进行讲解 区别 Set 成员唯一、无序且不重复 [value, value],键值与键名是一致的(或者说只有键值,没有键名) 可以遍历,方法有:add、delete、has WeakSet 成员都是对象 成员都是弱引用,可以被垃圾回收机制回收,可以用来保存DOM节点,不容易造成内存泄漏 不能遍历,方法有add、delete、has Map 本质上是键值原创 2020-09-10 10:49:23 · 323 阅读 · 1 评论 -
什么是防抖和节流?有什么区别?如何实现? 每日一题系列(三)
前言 函数的防抖与节流也是常见面试题 其区别在于 防抖:任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行 节流:指定时间间隔内只会执行一次任务 实现的话可以移步防抖与节流 总结 这是一个挺简单的实现,只要知道思路后,也可以根据应用场景,自己进行一些更改 防抖与节流也是前端性能优化中重要的一环,面试基本上都会问到 ...原创 2020-09-09 09:35:53 · 219 阅读 · 0 评论