专科毕业五年,我进腾讯了!

Lam 前端Q


作者:Lam

链接:https://zhuanlan.zhihu.com/p/265147335



腾讯云7面面经

从7月尾到9月尾,面试时长2个月(因为中间穿插了校招,所以时间有所拖长),7轮面试,其中5轮技术面,1轮GM,1轮hr。

下面只提供题目,答案就自己查找吧,毕竟查找答案也是学习的一个过程!

一面-技术面

晚上,视频面试,属于同部门的同事。

前端知识

  • dom树节点和渲染树节点一一对应吗,有什么是dom树会有,渲染树不会有的节点
  • CSS会阻塞dom解析吗?
  • requestIdleCallback是干什么用的
  • 浏览器的渲染原理
  • 浏览器的渲染过程
  • 关键渲染路径详述
  • 避免回流的方式
  • 跨域的方式
  • 前端的网络安全如何防御(xss,csrf)
  • cookies的保护方式
  • 浏览器的缓存机制
  • 什么文件用强缓存,什么文件用协商缓存
  • React-Native的原理,优缺点
  • react的虚拟dom和diff描述
  • react渲染优化(class,hook)
  • react的context的使用场景

node和后端知识

  • mysql和mongo的区别,使用情景
  • node有什么情况会导致内存溢出
  • node的内存分配
  • event loop(浏览器和node)

开放性题目

  • 首屏优化方案
  • 在App中如何实现前端资源离线缓存(方案)

算法

const arr = [101,19,12,51,32,7,103,8];

1.找出连续最大升序的数量

2.找出不连续最大升序的数量

二面-技术面

晚上,视频面试,属于其他部门同事。

前端知识

  • 浏览器的输入url后的过程
  • js异步方式
  • promise.resolve是干嘛的
  • promise.then如何实现链式调用
  • promise.then不返还一个promise还能用then吗
  • promise.finally的作用,如何自己实现finally
  • promise原理
  • webpack的异步加载如何实现
  • webpack的分包策略
  • 跨域方式有什么
  • jsonp的原理
  • csrf防御手段
  • cookie的samesite属性作用
  • js对象循环引用会导致什么问题
  • react如何阻止原生默认事件
  • react的fiber节点树是什么数据结构,为什么要用这样的数据结构
  • react 异步渲染原理,优先级如何划分
  • react hook有自己做一些自定义的hook吗
  • react key的原理
  • react如何实现函数式调用组件,toast.show()
  • react新增了什么生命周和删除了什么生命周期,为什么要删除

node后端知识

  • node对于option请求如何处理
  • node如何处理cors跨域
  • ES modules和commonjs的区别
  • node的event loop和浏览器的区别
  • dns查询过程,dns用什么协议发起dns查询的
  • tcp和udp区别
  • tcp的三次握手和四次挥手
  • 协商缓存和强缓存的区别
  • https协议握手大概过程
  • 对称加密和非对称加密的区别
  • 非对称加密,私钥和公钥的区别
  • https证书的作用

其他

  • 如何埋点,为什么用1*1像素的gif图片做上报
  • 如何定义首屏

算法

// 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
// 示例 1:
// 输入: [1,2,3,4,5]
// 输出: True


// 示例 2:
// 输入: [0,0,1,2,5]
// 输出: True


// 限制:
// 数组长度为 5 
// 数组的数取值为 [0, 13] .

三面-技术面

早上,视频面试,leader面试

前端知识

  • 绑定事件有多少种方式
  • 事件触发的流程,捕获和冒泡
  • 捕获阶段能终止吗
  • 终止冒泡阶段有哪些
  • 如果实现one绑定事件
  • 事件委托的原理
  • event.target和event.currtager的区别
  • 浏览器显示一个图片有什么方式
  • 如何获取url中的?后的参数
  • 浏览器的内存回收机制 标记清除还是引用计数?
  • 如何解决跨域
  • 什么是简单请求什么复杂请求
  • const和let有什么区别
  • ES6常用的api有哪些
  • 数组断引用的方式有什么
  • Base64图片有什么问题

node后端知识

  • Http强缓存和协商缓存用的是什么字段,整体流程是怎样
  • Https原理
  • Https第一次请求会携带什么
  • Ca证书的内容是什么
  • Https2.0的特性
  • xss攻击原理的防御方式
  • Csrf攻击原理和防御方式
  • 二进制分帧的具体是什么
  • Keep alive和多路复用的区别
  • Option请求的作用
  • Node gc方式
  • 新生代和老生代的区别
  • 新生代内存地址移动到老生代内存地址的过程

开放问题

  • 长列表优化方案
  • 首屏优化方案
  • Node如何保证第三方接口的稳定性

四面-GM面

  • 浏览器从写入url到加载完毕的流程
  • 浏览器白屏原因
  • 页面打开后cpu和内存快速增长,如何定位问题,可能有什么问题
  • 长列表优化,以及长列表中,如果带搜索功能如何实现

五面-技术委员会技术面

最新规定9级及以上级别需要1-5轮的技术委员会进行加面。

  • 最满意的项目列举2个
  • 为什么使用RN
  • 有100匹马,场地只有4条跑道,得出最快的4只马需要多少轮 Lam:100匹马,4个赛道,找出跑最快的4匹马。
  • 已知函数fn1会随机返回1-5的整数,要求基于fn1编写fn2,要随机生成1-7,fn2内不能使用系统的随机api,只能调用fn1获取随机数

六面-技术委员会技术面

  • 前端的未来发展的一些思考
  • Serverless的优缺点,前端的应用范围
  • 页面性能优化
  • 做过的专项的架构图

七面-HR面

  • 为什么离职
  • 你现在公司最有成就感的项目是什么
  • 你现在公司最有挑战的项目是什么,你是如果解决难题的
  • 期望薪酬

因为我以前有其他公司的工作经验,所以需要做性格测试,之后就是等出薪酬方案和hr沟通,然后发offer,offer后进入背调,一切通过后进入入职预约流程,之后就等待入职咯~~~。

总体感受

现在前端除了一些基本的面试知识外,明显感觉到算法的考虑在逐步加强,所以也总结一些重点的考点吧。一些很基本的原理我就不写了,什么闭包,什么原型链

  1. 对JavaScript的Api可以手写。

  2. bind

  3. new

  4. promise

  5. .....

  6. 浏览器的加载原理,回流重绘,url输入后的流程,关键渲染路径等....

  7. 框架的原理,了解你最常用的框架的内部原理以及实现,包括思想等。

  8. 浏览器和node的GC原理

  9. 浏览器和node之间eventLoop的区别

  10. webpack的基本原理

  11. 数据库,redis,nginx的一些基本概念以及基本原理和优化。

  12. 对于前端页面的优化方案,包括首屏加载,资源整合,网络优化,长列表优化等

  13. 网络安全,xss,csrf,cookies保护等

  14. 网络知识

  15. tcp

  16. https和http

  17. dns

  18. udp

  19. 算法和数据结构

  20. 基本常用排序

  21. 链表操作

  22. 树结构操作

  23. 贪心算法

  24. 回溯算法

  25. 双指针操作

  26. 哈希表

  27. 动态规划(一般为加分题)

整个面试过程,主要缺点可能是面试时间太长了,前前后后收到offer用了2个多月,面试者需要比较耐心吧。面试的难度还是需要看面试官给你的压力大不大,基本上面试的内容都会比较细,当中有一些关于我自己本身项目上的一些问题并没有写出来。但是基本围绕的点就是介绍你的项目,用到的技术,为什么用这个技术,解决什么问题,最终结果。如果你简历里面的内容你不是很熟悉,那么建议你别写,或者略微带过,不要给面试官带来过大的期望。我们对于简历上写到的内容,一定弄清楚每个技术的优缺点,尽可能了解原理和优化方案,不要只为用而用,大厂一般比较在意一个面试者自己的思考能力。

例如你写到你的项目里面用过xxx,但是面试官可能就想多问问你为什么用xxx,有什么问题之类的,如果这个时候你回答不上来,会给人感觉你只是用了而已,缺乏深度思考。而且自己的项目里面,必须说清楚你的具体负责的内容,参与程度如何。

以上就是我面试进腾讯云的整体过程以及追梦成功后的一些总结,如果你也在面试大厂或准备面试大厂的路上,希望这篇文章可以帮到你,祝您成功!