欢迎光临散文网 会员登陆 & 注册

前端常见手写题

2023-04-19 18:42 作者:_Canvas  | 我要投稿

前言

找了一个多月的暑期实习终于有个美团的offer了。

一个月下来的总结就是找实习前最好有相关实习经历(没绷住)。

这篇文件主要用于记录一下面试常见手写题(虽然面试的时候根本没用到)。

当然,只是简单实现,有些面试官可能还会叫你拓展一下啥啥的。

深拷贝

递归版如下,当然也可以用JSON.stringifyJSON.parse~。

数组扁平化

逻辑和深拷贝差不多,递归就vans了,当然还有 Array.flat() 这个API。

防抖和节流

之前的面试官有问过输入框和页面滚动分别用哪个函数,我的回答是输入框:防抖,页面滚动:节流。我之后没确认过,感兴趣的话可以自己查一下。。。

代码如下:

柯里化

一开始看到函数柯里化我也很懵逼,后来一想其实就是用一个数组(或其他数据结构)把每次传递的参数保存起来,等要获取结果的时候再对数组里的数据进行操作。

知道了如何处理数据,那么如何实现反复调用呢,比如:add(1)(2, 3)(4) ?

其实只要每次返回同一个函数就行了,和promise可以不断的.then差不多(每个then都会返回一个新的promise对象)。

下面是用柯里化实现的相加函数:

Promise API

经典手写问题,不会手写Promise A+规范还说你会前端?

就像在柯里化部分提到的,为了使Promise的各种方法都能不断的.then下去,首先就是要返回一个新的Promise对象。

Promise.all 

Promise.race

race和all类似,甚至更简单,直接返回第一个接受到的请求就ok。

寄生组合式继承

js有各种继承方法,我这儿就记一个比较完美的方法,当然es6也提供了extend语法糖。

结语

这年头的暑期实习都这么难找,太折磨了。

很喜欢任正非说的一句话:将互联网寒气传给每个人!

有一说一今年华子的暑期实习开的好晚,要4月末才笔试,感觉池子深不见底啊~




前端常见手写题的评论 (共 条)

分享到微博请遵守国家法律