国际化电商挂了之后,面国际化建站。
一面:
自我介绍之后,说会问一些基础问题。
- 你知道的前端安全知识说一下?(说了xss和csrf以及一些防范手段)
- 你知道的Http请求头和响应头有哪些?
- 你说的协商缓存请求字段有哪些?
- 你说有个if-range,那么你是什么场景下用到过吗?(我说没用到过,只是一些请求上看到过这个字段)
- 协商缓存有两种手段,时间和etag,两者有什么优劣?(last-modified不能准确表示文件变化)
- 做题,你用两个栈实现一下队列。
- OK,接着说强缓存和协商缓存有什么不同,还有什么是强缓存。
- 跨域了解过么?跨域请求头有哪些?
- 你提到cache control,那么no-cache和no-store有什么区别?
- 再来一道题,实现Promise的timeout功能(这里我忘了,我用race实现的,fetch有signal,不过没写过还是算了)。
- 你这道题是不是没取消,如果你页面里面有两个tab,切换了就会发请求,有个用户疯狂切换tab,那你这个是不是会出现数据混乱问题?怎么解决(fetch不会写,所以说了加个防抖)?
- 你们用的http版本是多少?(http 1.1,估计这里是想问Http/2的内容)
- OK,再写一道题,实现一下koa的compose函数。实现类似中间件的效果。
const plugin1 = next => ctx => {
console.log(1);
ctx.plugin1 = 'aa';
next();
}
const plugin2 = next => ctx => {
console.log(2);
ctx.plugin2 = 'bb';
next();
ctx.plugin22 = 'dd';
console.log(3);
}
const plugin3 = next => ctx => {
console.log(4);
ctx.plugin3 = 'cc';
next();
ctx.plugin33 = 'ee';
console.log(5);
}
const plugin4 = next => ctx => {
console.log(6);
ctx.plugin4 = 'dd';
next();
console.log(7);
ctx.plugin44 = 'ff';
}
const ctx = {};
compose(plugin1, plugin2, plugin3, plugin4)(ctx); // 实现compose
// 输出1 2 4 6 7 5 3
console.log(ctx);
// ctx: {
// plugin1: 'aa',
// plugin2: 'bb',
// plugin22: 'dd',
// plugin3: 'cc',
// plugin33: 'ee',
// plugin4: 'dd',
// plugin44: 'ff',
// }
- 你说一下从new Vue开始的整个流程吧。
反问阶段。然后说我通过了,等会二面面试官来通知你。
二面:
- 自我介绍
- 然后面试官介绍了一下部门。
- 开始做题
3.1 实现Promise.all
3.2 实现蛇形打印二叉树
3.3 说一下node事件循环的输出顺序。 - 我们从基础问题开始,你先说一下for of 和for in 有什么区别吧?
- for in和Object.keys有什么区别?
- TCP三次握手说一下?
- TCP保证可靠性传输的手段说一下?
- TCP拥塞控制怎么控制的?(快重传,慢开始和滑动窗口,我忘了,只记得慢开始)
- 能说一下Vue3的新特性有哪些吗?(说了下composition api和v-model以及多事件处理器,setup替换created,其他忘了)。
- Vue3改成Proxy之后有什么好处?(巴拉巴拉)
- 你们前端监控怎么做的?(我说用sentry收集错误)
- 接口监控呢?(没涉猎)
- 平时有遇到一些性能问题吗?(因为C侧的页面都比较小巧,所以也没有遇到什么性能问题)?
- 知道单域名下的连接数有限制吗(单域名为6个连接)?
- 静态资源转到CDN是因为之前的资源都放在服务器那边?(对的)
- 有了解过webpack vue-loader怎么实现的吗?(之前看到过vue-loader引用了vue-template-compiler,所以猜测是和Vue里面的编译方式接近,所以就说了这点)。追问vue-loader需要一个插件,你记得是什么插件吗?(忘了)
- 有了解过loader和plugin之间的差异吗?(巴拉巴拉)
- 有没有看过webpack动态模块的实现原理?(不了解)
- 说一下项目吧,你挑一些觉得还可以的项目说一下。(巴拉巴拉,面试官说不是很复杂嘛,我说是的)。
- 对后端有什么了解吗?(有了解过restful api,写过后台也接过数据库)。
- 有没有遇到过大的qps的情况?(我说node后台是内部使用的,所以也没有达到需要压测的标准)。
反问。