作业帮前端社招
1面
一堆看代码说输出的题【描述】
就是this、变量提升、闭包、event loop说输出的那些基础题。这些必须秒答出来且答对,基础一定不能有差错
项目介绍【描述】
cache-loader有什么坑,缓存错误怎么解决【描述】【举例】
面试官提到,他们做一个可视化编辑页面的系统,对组件使用了cache-loader,开发中有时候出现缓存错误的文件的问题。他说他们遇到了这个问题,暂时没有解决,叫我猜想一下,可能是什么原因导致的。我说应该是开发过程中,修改了被引用模块/引用模块、或者切换git分支,需要自己删除掉node_modules/.cache或者重启dev server。
编程题,9选3(15min)【编程】
实现bind(送分)
防抖&节流(送分)
settimeout实现interval(注意和普通的要无差别体验)
;(() => {const list = new Set();function myInterval(fn, ms) {
const ref = {};
const exec = () => {
return setTimeout(() => {
fn.apply(null);
const timer = exec();
ref.current = timer;
}, ms);
};
ref.current = exec();
list.add(ref);
return ref;
}
function myClearInterval(ref) {
clearTimeout(ref.current);
list.delete(ref);
}window.myInterval = myInterval;window.myClearInterval = myClearInterval;
})()
字符串大小写反转(送分)
节点是不是属于某个节点下(当时我写了一个不带parentid的版本,要自己一层层搜。如果带parentid的,就简单很多了,测试用例你自己写,他们也没有给出)
·
·
反转链表(常规题)
合并数组['a', 'b'], [1, 2, 3] => ['a', 1, 'b', 2, 3] (送分)
合并有序数组[1, 5], [2, 5, 6, 8] => [1, 2, 5, 5, 6, 8] (常规题,而且比合并有序链表还要简单一些)
一堆数字字符串组成最大数是多少[50, 2, 5, 9] => 95502 (贪心)
function getMaxNumber(arr) {return arr.reduce((acc = '', cur) => Math.max(+`${acc}${cur}`, +`${cur}${acc}`));
}
都属于比较简单的且经典的,可以当作练练手。毫不夸张的说,实现interval和最后一题稍微能扛多一阵,其他的那些经典的题,如果大家平时了解过的都可以秒杀的。
全部评论
(2) 回帖