腾讯 前端 秋招面经(凉)
八月中开始陆陆续续面到这周,基本都是一面挂,最好的是到了二面,之后应该是和藤子无缘了,整理一下记录的面经
IEG 一面
面试官一直在试探我的后端水平,前端问了几个八股,拷打了一下项目,然后开始问会什么后端语言,掌握程度如何,后端如何做负载均衡(我只知道可以配 Nginx 的 upstream 字段,面试官似乎不太满意),然后追问有什么负载均衡集群的实现技术和算法(不知道,GG)。感觉是想要全栈型人才,在表现出我对后端知识掌握的匮乏程度后面试官对我也没什么兴趣了。
第二天挂。
CDG 金融科技 一面
80 min
发挥最好的一集,基本都打上来了,可惜还是挂了,应该是手撕没做好。
- 自我介绍
- 简历、项目拷打
- monorepo(解决 npm 管理的一种方案)
- 对 vue 和 react 的体感和理解,底层原理
- vue2 和 vue3 怎么实现响应式
- vue2 使用 defineProperty 有什么问题(数组)
- react 响应式(×)
- (项目)用户权限管理怎么做的(JWT)
- JWT 有什么优点,有什么缺点
- JWT 过期时间可以更改吗?
- 前端性能优化
- CDN 原理,CDN 预热
- 图片转 base64 后会变大多少
- 如何监控前端错误,上报时携带什么信息
- 自动埋点怎么做
- http2 特点,为什么能做到多路复用
- http3
- http1 和 http1.1 的区别(缓存策略)
- 前端工程化
- webpack 的 loader 和 plugin
- web 安全,详细介绍原理,如何避免
- 算法题:合并有序数组,要求时间复杂度O(m+n),空间复杂度O(1)
- 写代码的时候因为开辟了一个新数组被叫停了
- 面试官让我再审题然后说思路,我说可以用双指针,面试官想了想说也行不过会很麻烦
- 正确的做法应该是从末尾逐个比较(有点紧张没想到)
- 反问
第二天挂。
PCG 一面
110 min
最恐怖的一集,每一个八股面试官都会追问,细问底层原理,直到答不出来为止。简历上的项目也会深挖细节。
- 自我介绍有专门的课程教前端吗
- typeof [] 输出,[].constructor 输出
- 为什么两个结果不一样
- 怎样判断一个变量是不是数组
- 答:instanceof(×,只能用来判断是不是某个对象的实例);Object.prototype.toString.call
- 判断输出:
var x = 10; var foo = { x: 20, bar: function () { var x = 30; return this.x; } } foo.bar(); foo.bar.call(window); foo.bar.call(foo); // 20 // 10 // 20
- 如何阻止<a>标签跳转?(Event: preventDefault)
- 事件委托
- 判断输出:(答案说对了,但是没有解释出来为什么 4 会被打印,即为什么 resolve 之后的代码会执行:因为没有 return)
console.log(1); setTimeout(function () { console.log(2); }, 0); new Promise(function (resolve) { console.log(3); for (var i = 0; i < 100; i++) { i === 99 && resolve(); } console.log(4); }).then(function () { console.log(5); }); console.log(6); // 1 3 4 6 5 2
- js 中什么是进程、线程、协程(没有理解题意,后来面试官补充说可以在 node 环境下说明,没了解过,寄)
- 写正则匹配字符串,要求:1. 首位必须是大写字母;2. 整个字符串由 3-15 位字母、数字或下划线组成
const reg = /^[A-Z][A-Za-z0-9_]{2,14}/
- 追问:平时写复杂正则有什么好办法(答:在线校验工具)
- display: inline、block、inline-block 的区别
- visibility: hidden 和 display: none 的区别
- 平时有写一些 api 接口吗?(python)
- 举例说明常见 http 状态码有哪些,301、302、401、403、304 代表什么含义
- 304 是如何对是否使用缓存进行校验的
- 强缓存和协商缓存的字段之间有什么区别
- Last-Modified / If-Modified-Since 使用时间有什么问题(答:秒级的误差、文件被编辑器打开不一定内容发生变化)
- 面试官对回答不满意,最后想到使用日期格式的字符串可能有时区误差
- 看 css 代码说样式
{ margin: 0px 20px 10px; } // 上 0,左右 20,下 10 { margin: 0px 20px 5px 10px; } // 上 0,右 20,下 5,左 10
- css 怎样实现一个九宫格,不允许使用 table
- 一开始答的是 flex + flex-wrap,新增要求:弹性,中间有 gap
- 后来回答 grid(属性名和值忘了,但是被我蒙对了)
.grid-container { grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); }
- 项目中有用过 grid吗(没有),那怎么学的(看文档,有些特殊场景比较有用),比如什么场景呢?(答:比如刚才那个题目。双双难绷)
- 编程题,数字转汉字,没写出来,稍微讲了一下思路
- 普通函数和箭头函数有什么区别(答:没有 this、没有 arguments、没有 prototype)
- 回答的不是面试官想问的,追问:它们行为上有什么区别(变量提升)
- js 跨域,怎么解决(八股+乱答一气,然后挖坑了)
- iframe 怎么解决
- 追问 postMessage 的用法
- 追问 BroadcastChannel 的用法
- 介绍自己的项目
- 使用模块联邦后线上出问题怎么办
- 国际化怎么做的(不同国家不同域名)
- 被一顿质疑,然后基于简历内容扩展追问
- 怎么捕获全局异常,怎么捕获资源加载异常,怎么捕获 CDN 加载异常
- 低代码平台怎么处理样式联动,比如 A 组件的显示取决于 B 组件的选项值
- IntersectionObserver 怎么用
- IndexDB 用法
- 大小有什么限制(没了解过,后来查了一下,一般不小于 250M,最大不超过磁盘的一半,否则会触发删除)
- 有哪些写入方法
- 怎么进行错误处理
- 反问
PCG 二面
由于以为上一面寄了所以也没有准备复习,结果上一面很奇迹的过了,但是运气也彻底用光了,表现得很烂。
没有记录,第二天挂。
总结
藤子是我秋招第一个约面的公司,可以说帮助我打响了秋招第一枪,可惜由于没有准备好,一直是屡战屡败。机会总是留给有准备的人,菜就多练。现在藤子也不约面了,应该是最后一次表现得太差了把面评弄脏了,希望补录的时候还有机会吧。大家秋招都很辛苦,祝愿我们都能拿到心仪的 offer。
#前端##腾讯##秋招##面经#