【2021前端面试=>手写系列】
文章平均质量分 63
°PJ想做前端攻城狮
始终相信不能更进一步不是因为困难,而是畏惧困难的自己。所以想做前端攻城狮的PJ正在将键盘敲烂的路上,一直敲
展开
-
JS如何实现数组扁平化?不同的方法有什么区别?
面试官:给我手写一个数组扁平化吧,我不要flat。我:。。。????前言数组扁平化?听起来好像灰常的好大上?真的吗?那数组扁平化到底是什么?怎么实现呢?数组的扁平化处理,其实就是多维数组转化为一维数组。如下,将上面这个数组转化为下面的数组那怎么去实现呢?别着急。我们一个一个说。ES6的flatary = arr.flat(Infinity)console.log([1, [2, 3, [4, 5]]].flat(Infinity))Array.protype.flat().原创 2021-07-24 14:38:45 · 337 阅读 · 31 评论 -
☀️七分钟学会手写防抖和节流
前言面试官:来手写一个防抖和节流吧。我:????…防抖 (debounce)防抖,顾名思义,防止抖动,以免把一次事件误认为多次,敲键盘就是一个每天都会接触到的防抖操作。想要了解一个概念,必先了解概念所应用的场景。在 JS 这个世界中,有哪些防抖的场景呢登录、发短信等按钮避免用户点击太快,以致于发送了多次请求,需要防抖调整浏览器窗口大小时,resize 次数过于频繁,造成计算过多,此时需要一次到位,就用到了防抖文本编辑器实时保存,当无任何更改操作一秒后进行保存代码如下,可以看出来防原创 2021-06-14 11:54:43 · 507 阅读 · 20 评论 -
☀️七分钟教会你手写call、apply和bind
前言面试官:如何改变 this 的指向?以及三者的共同点和不同点我们:我们可以通过调用函数的 call、apply、bind 来改变 this 的指向。面试官:来实现其中一个。我们:…????温习一下call、apply、bind的异同共同点:功能角度:三者都能改变this 指向,且第一个传递的参数都是 this 指向的对象。传参角度:三者都采用的后续传参的形式。不同点:传参方面: call 的传参是单个传递(序列),而 apply 后续传递的参 数是数组形式。而 bi原创 2021-06-07 20:17:51 · 376 阅读 · 12 评论