美团基架前端暑期实习凉经
问题
自我介绍,项目经验略。
1. xss和csrf,答得不好,其中关于cookie问到了如何实现请求不带cookie,和domain属性有关,我给扯跑偏了,扯到fetch和xhr的区别上去了;
2. bom是什么;
3.async和defer的区别;
4.预加载的实现方式,应该是想问link标签rel属性prefetch,又扯跑偏了;
5. 防抖节流,代码如下,面试官说理解有误,节流实现的有问题,节流实现的是防抖。
export const throttle = (fn, time) => {
let flag = false;
return (args) => {
if (!flag) {
flag = true;
setTimeout(() => {
fn.apply(this, args);
flag = false;
}, time)
}
}
}
export const debounce = (fn, time) => {
let timer = null;
return (...args) => {
timer && clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, args)
}, time);
}
} 6.用sass或less实现下图竖线,不会 7.实现三栏布局,左边宽固定,右两栏3比2。flex实现的,问到了flex的三个简写属性的意思,grow,shrink和basis。不过面试官表示不满意,说没有提到坐标轴概念,就是flex-direction方向。
8.如何实现对列表的点击事件监听,事件代理。
9.实现快排,代码如下,面试官表示有疑问,解释半天不是很满意。
function quickSort(target, left = 0, right = target.length - 1) {
if (left >= right) return;
let index = left;
for (let i = left + 1; i <= right; i++) {
if (target[i] <= target[left]) {
[target[index + 1], target[i]] = [target[i], target[index + 1]];
index++;
}
}
[target[left], target[index]] = [target[index], target[left]];
quickSort(target, left, index - 1);
quickSort(target, index + 1, right)
return target;
} 面试总结
面试官评价基础一般,较薄弱;
对于某些问题有代沟,我说我的理解,面试官表示不明白,但也不说错在哪,有点难受;
项目亮点介绍真是个大问题,感觉我以为的亮点都不是亮点,唉