【校招VIP】快手前端一面 暑期实习 面经 详细介绍

08月15日 收藏 0 评论 0 前端开发

【校招VIP】快手前端一面 暑期实习 面经 详细介绍

转载声明:文章来源:https://www.nowcoder.com/discuss/498917397781291008

问题

1.自我介绍
2.你还有一个作品集,尝试讲解开源框架,这是你做的吗?
3.你的作品集里面有Vue的精讲,你对Vue的理解是?是看源码多一点吗?(我连忙解释说,不是Vue的精讲,而是xxxx)
4.所以你讲的内容是?
5.你是什么时候开始学习前端的?
6.找实习有投递后端吗?(没有,只投递了前端)
7.有一个场景,10个组件都调用了同一个接口,那么怎么办,不更改组件内在的逻辑,如何让请求只发一次?(我后面说在重新封装axios,然后我提到了拦截URL,后面经过面试官提醒想到了请求拦截器)
8.了解NodeJS,了解大概有多少?
9.部署到CentOS,后端是用Java吗?还是Node相关?
10.前端如何部署到Nginx的?(我提到了location,try_files,root等等)
11.你刚刚提到了一些概念如location,反向代理,history等等,那你前端是Vue项目吗?(是的)
12.你的vue项目你刚刚提到了打包,那是webpack打包生成dist吗?
13.生成的dist如何部署到后端的呢?
14.你这个路由重定向是如何处理的?就比如说/a /b?
15.本质上Vue项目没有做路由分发,都是通过nginx来完成吗,如果是node环境下有没有做关于history的配置?(没有在node侧做配置,就没有涉及到node)
16.刷新会显示404,从/不会404这种情况遇到过吗?怎么去解决刷新可以正常显示呢?(我严重怀疑面试官不知道try_files,已经解释好几次了,最开始提到nginx的时候我就解释了try_files。。。)
17.然后面试官问,脱离nginx该如何解决这个问题,换tomcat,换apache该如何办呢?(事实上,tomcat就是当404的时候重定向到index.html即可,apache我没用过,估计也是加一个配置,但是面试官想不用这个静态资源直接在Vue中解决,我是真的不会)
18.node中有没有用过history相关的?
19.刚刚提到了反向代理,那么反向和正向的区别是什么?
20.部署服务器的时候有域名吗?(最开始是IP,后面是域名,再后面是HTTPS也实现了)
21.https当时是怎么配置的?(腾讯云,直接一粘贴完事)
22.所以你的https是nginx实现的?
23.你能说一下https握手的全流程吗?
24.解释一下证书和签名的概念?第三方劫持https是如何做预防的?(不会,这俩我都不会,直接下一题)
25.http版本有了解哪些吗?(http1.0 1.1 2.0 3.0,队头阻塞,服务端推送,头部压缩,range断点续传,cachecontrol等等)
26.你刚刚提到了队头阻塞,那么什么是队头阻塞呢?
27.提到了http 几.0解决了?
28.http2.0怎么还有队头阻塞,能说一下嘛?
29.刚刚提到了头部压缩,能讲一下是什么方式来进行压缩?(我记得是gzip,但是这方面我没有做过多的理解)
30.刚刚提到了缓存的概念,那能详细解释一下缓存吗?
31.打断一下,直接说协商缓存就行了,强制缓存不说,时间有限
32.那如果etag改了,last-modify没改这种情况呢
33.为啥有了last-modify还要有etag呢?
34.命中协商缓存状态码是多少?(304)
35.那命中强缓存状态码平时有注意吗?(没注意,刚查了一下 200)
36.以3开头的状态码还有哪些?
37.vue有读过源码吗?(读过keep-alive)
38.那你讲一下keep-alive源码
39.keep-alive的源码中从渲染模式来讲和传统组件有什么不同?它的render函数有了解吗?(没有了解render,我只看了缓存)
40.keep-alive如何去处理slot的?(不会,我看的重点在缓存那块)
41.那还看过哪些其他的源码?刚刚提到了模板编译,对模板编译的了解有哪些?(没有了解模板编译)
42.响应式原理有了解过吗?
43.get中收集的内容是什么呢?(我回答的watcher)
44.notify中去如何执行这些watcher去更新视图,有了解过吗?
45.你还当过老师是吗?(是的,数学老师)
46.是实习是吗?(是的 2021的事)
47.你能说一下虚拟DOM和真实DOM的好坏有什么见解?
48.vue3有了解过吗?
49.vue2最外层有一个div,vue3不受限制,知道为什么吗?(具体为啥我不知道,我只知道用fragment实现的)
50.写过dockerfile吗?
51.了解挺全面啊。。后端了解这么多,你为啥做前端呀?(我算法不行,所以前端,但是我现在算法起来了,但是临近秋招不能乱转了,我只说的)
52.说一下这个JWT吧
53.是JSON web token吧(对对对,我刚刚说成了Java web token,哈哈哈)
54.它的组成是几部分呢?(三部分,签名算法,内容,签名)
55.相比普通token有什么优点吗?(不好意思呀,我没用过普通token,我直接jwt token好吧)
56.那jwt有啥缺点吗?
57.既然用了jwt,还用redis,那这个redis是什么时候用呢?
58.所以jwt的缺点是?
59.jwt传输过程中放到哪里的?(放到请求头的一个k-v对,反正不是cookie,名字可以随便取,一般是A开头的一个单词,我忘了叫啥,我当时这么说的)
60.如果校验失败,返回状态码是多少?(我说的401,但是实际是后端定的,想多少就多少,但是一般401)
61.写道题

手撕代码

            //这道手撕代码有点简单。。写一个compose函数
//其实是力扣一道题的改编:https://leetcode.cn/problems/function-composition/

var compose = function() {
const arr = [...arguments]
return function(x) {
for(let i = arr.length - 1; i >= 0; i--) {
x = arr[i](x)
}
return x
}
};

//2分钟写出来之后,面试官说用reduce实现一下,又花了2分钟写了一下:
var compose = function() {
const arr = [...arguments]
return function(x) {
return arr.reduce((pre,cur) => cur(pre),x)
}
};

//运行结果正确,面试结束

62. 反问环节(问了技术栈,业务是啥)
63. 有投递其他公司吗?(有,介绍自己的offer情况)
OK、下机、拜拜,谢谢你的时间

总结
总体而言,难度是我面试过的所有面试中,难度最高的,比字节还高。
可能就是撞到出难题的面试官了,也算是运气不好。

C 0条回复 评论

帖子还没人回复快来抢沙发