手写题系列
文章平均质量分 72
前端面试 JavaScript 手写题系列题目。
城南顾北
人生是旷野,只此一生,应该尽兴。
展开
-
前端面试手写题系列 X
结果:只会执行一次,我们模拟的是一直在滚动滚动条,每隔 0.1ms 执行一次,所以只打印出了一个值,因为 我们模拟的数量过少,这些 scroll1 函数在 0.1ms 之内都完成了。也就是说在如果在cd时间段,不管你触发了几次事件,只会执行一次。游戏中的回城就可以认为是防抖,在回城的读秒过程中,如果再次执行回城操作,那么会重新进行读秒,只有整个读秒过程都没有再次执行回城操作,那么等到读秒结束才能成功回城。实际上是一个一个单独的参数,而不是和 apply 一样的数组作为参数。但是官方的函数只能拍平一层。原创 2024-03-01 12:38:32 · 885 阅读 · 0 评论 -
前端面试手写题系列 IX
什么是深拷贝:拷贝的是对象什么是浅拷贝:拷贝的是引用O(nlogn),最坏为 O(n^2)最坏的情况是每次选取的元素都是最大值或者最小值。原创 2024-03-01 12:37:10 · 333 阅读 · 0 评论 -
前端面试手写题系列 VIII
为了方便记忆,再加上这三个函数本身就有相似性,下面关于这三个函数的写法都差不多,统一使用类似 (context, …args) 的参数,其中 context 表示 this 的指向,args 则表示传入的参数。(1)将函数设为对象的属性;原创 2024-03-01 12:35:49 · 350 阅读 · 0 评论 -
前端面试手写题系列 VII
柯里化是一种函数的转换,它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)©。延时执行(闭包也可以实现,而且更简单),还有提前返回(主要针对IE)减少重复传递的不变参数。原创 2024-03-01 12:33:42 · 372 阅读 · 0 评论 -
前端面试手写题系列 VI
手写 new 过程,首先需要 new 操作符到底做了什么事情?原创 2024-03-01 12:32:03 · 365 阅读 · 0 评论 -
前端面试手写题系列 V
一旦创建,迭代器对象可以通过重复调用 next() 显式地迭代。迭代一个迭代器被称为消耗了这个迭代器,因为它通常只能执行一次:在产生终值后,对 next() 的额外调用应该继续返回 {done:true}。是一个对象,它定义一个序列,并在终止时可能附带一个返回值。手写 foreach 函数:遍历执行函数。在 JavaScript 中,原创 2024-02-29 13:15:17 · 600 阅读 · 0 评论 -
前端面试手写题系列 IV
如果真的能记住或者自己能够写出来的话,正则真的是一把利剑,很多自己无法实现或者实现不全的判断函数,都只需要一个正则表达式就可以解决。意思其实很明显,传入一个参数 William,然后等五秒,然后执行 do,然后执行 execute。像这种正则表达式,一般我们感觉都是不会考察的,但是实际上就是考了。// 我们原来的写法就是 fn3(fn2(fn1(1)))// 但是这里我们可以用 compose 函数来实现。// compose 函数的实现。原创 2024-02-29 13:10:55 · 660 阅读 · 0 评论 -
前端面试手写题系列 III
其实这里有一个面试题,会问就是说如果 html 中只有 div 标签的话,是不是依然能够正常作用,也就是说没有 header main a p h 等标签,只用 div 标签,是否能够正常实现页面?给你一个数组,其中包含了很多个对象,每一个对象中都有一个 key 叫做 parent,其为一个数值,这个数值代表的是它所在的层级,请把这个数组转变为树,-1表示的最顶层的节点。// 判断是否是顶层节点,如果是就返回。答案肯定可以的,这个题目就是教你如何使用 div 实现 a 标签的功能。原创 2024-02-29 11:27:35 · 632 阅读 · 0 评论 -
前端面试手写题系列 II
相当于有一个队列,但是这个队列有一定的长度,每一你可以执行 put get 操作,最新被操作的值需要被移动到队尾,表示最新被执行,如果 put 的长度超过队列本来的长度,就需要将队列的队头元素弹出,用来释放空间,然后将新 put 的元素放进来。least recently used,缓存淘汰算法。原创 2024-02-29 11:26:03 · 624 阅读 · 0 评论 -
前端面试手写题系列 I
希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。思路就是排序的时候比较一个随机数和 0.5 的大小,很明显每次比较随机生成的随机数都是既可能大于 0.5,也可能小于 0.5,所以每次比较的两个数字前后的顺序是不一定的,这就起到了洗牌的效果。希尔排序的思路是:先将整个待排序的序列分割成为若干子序列,而后将它们分别进行直接插入排序。使用希尔排序的比较次数和交换次数在数据量足够大的时候会明显减少,效率提高。原创 2024-02-29 11:18:10 · 575 阅读 · 0 评论