1.ts泛型 omit partial相关 (没答上来,果然写在简历上的还是得深入了解,明天恶补知识)
2.移动端web和PC端web的开发有什么区别? //只说了适配不同屏幕
3.c端业务相比b端业务,有什么区别? //只说了SEO优化方便爬虫获取,用户体验优化
4.手写实现一个before函数,before(num,fn)接受两个参数,第一个参数是数字,第二个参数是函数,调用before函数num次数以内,返回与fn执行相同的结果,超过num次数返回最后一次fn的执行结果。
这个题是写出来了,但感觉表现一般,中间调了好多次,箭头函数和...argments啥的,还在while语句里面用了return,糊涂了
const log = (a, b) => { return a + b } function before(num, fn) { let count = num let i = 0 let res return function () { //这个地方刚开始用箭头函数,直接导致后面的arguments取不到值 if (i < count) { //这个地方的if开始用的while,脑抽了 i++ res = fn(...arguments) return res } else { return res } } } const log3 = before(3, log) console.log(log3(1, 5)); // 6 console.log(log3(2, 6)); // 8 console.log(log3(3, 7)); // 10 console.log(log3(4, 8)); // 10
5.css,计算机网络八股文,js深入以及准备了良久的前端性能优化,react进阶都没问,然后说看我和一面面试官聊的很多,从我的简历上表达出的信息没啥可问的了,问我有没有想说的😂一股凉凉感觉袭来,之后面试官看我意犹未尽,就提出可以闲聊一会儿,恰好看到我vscode上面有leetcode插件,就让我打开现场做第329题,我一看一道hard,感觉要凉,打开之后发现dfs + 回溯就可以,很快写了个大致的代码,然后引导我设置一个缓存,基本上就解决了,感觉靠这个算法题能扳回点印象分。
6.之后我又聊到前端算法用得少,面试官给我举了个例子反驳:一个项目的js代码函数之间的调用可以构成一个图,让我设计一个算法找出被调用次数超过10的函数,并对他们进行单元测试。水平有限,图相关的只了解过什么最短、最长路径的,一时半会也就没想出来。之后又讨论到自动测试,面试官给我科普symbolic execution,可以根据代码生成行覆盖率很高的测试用例。
总结:这次面试还是很新颖的,遇到的问题基本都是之前面试中没见过的,让我意识到也应提高一下对前端整个宏观层面上的认识,而不是局限于死板的八股文和语法知识点。面试官人很和蔼,聊的也挺不错,体验很好,尽力而为了
全部评论
(3) 回帖