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

相关推荐

你见过凌晨四点的牛客吗_BY_KobeBryant:明年再投都一样😂😂
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务