当前位置: 首页 > 面试经验 >

快手前端一面 暑期实习 面经 详细介绍

优质
小牛编辑
91浏览
2023-06-15

快手前端一面  暑期实习 面经 详细介绍

基本信息

时间:2023.6.15
时长:54min
base:帝都
面试岗位:前端 暑期实习

问题

  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、下机、拜拜,谢谢你的时间

总结

总体而言,难度是我面试过的所有面试中,难度最高的,比字节还高。

可能就是撞到出难题的面试官了,也算是运气不好。

#面经##快手信息集散地##快手#
 类似资料: