两年前端经验,从腾讯辞职的我跳槽到了字节(附面经详情及答案)(代码片段)

不爱码字的程序员- 不爱码字的程序员-     2022-12-05     698

关键词:

前言 

19年毕业于广东一所一本大学,校招的时候拿到了腾讯、字节、拼多多等offer。

最终选择了腾讯,在鹅厂待了两年多了,业务只能说一般般,比较忙,通常都是晚上十点左右才下班,而且需要随时待命。鹅厂其实挺好的,该给的福利待遇都很足,只能说和我的发展方向不太符吧。

这次出来面试主要是希望能换个平台寻求更好的发展和更高的技术视野,也希望能找到轻松一些的工作,所以就出来看看机会。 

个人选择的原则:满足工作生活平衡、付出收益平衡、业务未来可观三者之一。

下面我会对这次字节面试做一些总结,会标明每一题的性质,也会给出一些参考思路。

  • 描述:对概念、过程的描述,纯理论性问答题为主
  • 举例:说出应用场景,或者是自己团队实践的情况
  • 伪代码:写代码,但不需要跑起来,甚至可以随便写伪代码,主要目的是描述思路
  • 编程:真正的写代码,需要跑起来,有测试用例,要看到效果

面试总结

一面

说来也是比较巧,面试我的面试官之前也是腾讯的,面试的过程也非常好,全程跟聊天一样,互相交流技术,后面也扯了一些在腾讯的旧事。

1.项目难点【描述】

2.如何设计权限系统,如何维护和定义、表的数据结构是怎样的【举例】【描述】
我们的项目是rbac1类型的权限系统。展示是树形结构,但权限是扁平化的,只需要勾选权限,可以达到灵活修改权限

3.中间人劫持,怎么防止。x-frame-option?白屏的喔,怎么办?也不一定嵌入iframe啊,可以嵌入脚本、图片,怎么阻止【描述】
x-frame-option、重定向、https,请求前加密(https、加密代理)、请求中规避(请求拆包)、请求后弥补(前端做一些逻辑)。嵌入非iframe的,如果已经突破了前面两关,走前端逻辑:触发DOMNodeInserted、DOMContentLoaded、DOMAttrModified事件。或者是给能src的标签加上自己的data-xx属性标记区分

4.class组件和function组件对比。写过安卓吗,那对class组件有什么看法【描述】
各自特点对比罗列一下。我也不知道有什么很好的,问题都放在这里,说明对方倾向于class组件的,所以一定不能说太多class组件不好,吹捧hook

5.hook缺点,hook代码难维护怎么解决【描述】
这种开放性和经验积累的题目真的是最难的,平时大家知道标准答案的题目和这种对比起来,没得比的。这个需要团队的积累,我们这边暂时没什么很大问题,所以感受不到。最基本的,eslint一定要开启,不然会莫名其妙的dep导致更新。其次是根据情况来说一下,function的场景。经验之谈,这里可以讲一篇文章

6.redux为什么每次reducer要返回一个新对象,面对大量节点如何优化【描述】
新的props导致更新。大量节点使用immutable

7.immuatable和shouldupdate配合、immuatable数据一些对比问题【描述】
这是黄金搭配的方案了,用过的人应该能理解到。几个看代码判断 === 是否是true的问答题,原则:只要一个节点变了,那么从他开始回溯的父节点全都是变的

8.http缓存、离线包原理、移动端首屏幕加载速度优化、webview冷启动、预热【描述】
很基础的了,送分题

9.一个很牛逼很多功能的class组件,里面有业务生命周期(获取数据前后、弹出窗口前后...),怎么在函数组件里面直接复用它【举例】
先注入到函数组件的props,再到useeffect关键节点里面执行业务生命周期

10.给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。【编程】
找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?(限时5分钟)
输入:
[4,3,2,7,8,2,3,1]
输出:
[2,3]
这种题,其实看见不用空间、o(n)时间,通常潜台词就是,用原地哈希来做。做过这题的肯定是秒杀,没做过的慌得一逼,我当时就是没做过的。遍历的时候把数字放到index下(比如数字4放在数组的第4个位置),如果发现后面的数的n,arr[n]已经满足了arr[n] === n那就结果算一个。lc标准答案:和我交换位置不一样,lc的是让那个数变成负数,如果后面发现arr[n]是负数那就算一个,比我的交换index简单很多

二面

收获很大,了解到了一些很强的技术和全球化相关的技术。途中暴露了一些计算机基础不行的缺点了,面试官也给了我一些提示才答出来。因为我非科班出身,所以计算机基础方面就明显不行了,他也建议我回去补一下。

1.cdn原理【描述】
   答案很容易搜到

2.为什么多域名部署【描述】
   http1和浏览器的问题,同一时间6个连接

3.单元测试、e2e测试【描述】
   概念性,容易搜到

4.event loop【描述】
   送分题

5.项目介绍一下【描述】

6.客户端mock怎么支持【描述】【举例】
   客户端 => 协议转换服务 => 中转服务 => mock服务(接入mockjs)

7.怎么mock真数据,我需要真的id怎么办,除了写死【描述】
   反向抓包,无需自己填充数据。或者全链路监控里面捞出一个id

8.什么情况用ts、什么时候不用【描述】
   公共组件、库一定要,不重要的业务代码、节奏快的业务代码不用

9.单元测试和ts结合【描述】【举例】
   有ts的话,输入参数很容易可以知道有没有问题

10.全球远程调度机器实现自动化测试【描述】
     请求 => 分发 => 海外机器 => 调起当地机器 => 自动化脚本(如puppeteer) => 跑ui流程 => 上报       结果 => 系统展示

11.cjs实现esm【伪代码】
     参考webpack把esmodule的import转成wepack_require的样子

三面

是北京那边的人面的,感觉到很老练的气质,气场很强。

1.项目介绍。权限系统业界内怎么设计,常见的几种【描述】
   rbac0~3、前端简单判断、后端按需返回

2.工作量体现到什么地方,现在工作量大吗【描述】
   重构、树结构组件、各平台数据适配、技术轮子的推广

3.最困难的环节【举例】
   一个能光速开发内部系统的公共组件设计、推广自己做的平台给公司其他团队用

4.优点缺点、未来规划

5.怕被人挑战吗,怎么应对

四面 

可能是我跟腾讯缘分未断?四面的面试官之前也是腾讯的,很亲切,在二,三面被虐后,四面突然像是如沐春风的感觉,很轻松惬意。

1.经过前面对了解,你知道我们这边做什么了吗,描述一下【描述】

2.我们的技术栈差不多,如果你来上班,如何快速过渡和上手适应【描述】
   内部系统 => todev系统,针对人群不一样,技术栈类似,容易解决。

3.对b和c端业务对理解【描述】
 简单来说,b端ui要求低、架构复杂;c端ui要求高、架构简单。详细的点,引申出去还有很多很多。

4.tob业务架构设计、技术选型【举例】
  先出结构图、流程图,再给出表结构设计,确定了方案,组件、模块划分。技术选型一般就是三    大框架+配套的标准ui了,如vue与ele-ui,react与antd,加上状态管理、路由等。如果复杂的混      杂多项目多系统,使用微前端,spa或者iframe两种取其一,如果没有历史包袱可选spa、如果有    历史包袱使用iframe嵌入,但需要和其他前端进行对协议(前端和前端联调)这里可以讲20分钟  

5.项目开发流程、生命周期【举例】

6.自动化测试设计思路【描述】
   用例、断言、输出结果

HR面

HR小姐姐很温柔,就聊了一些日常,项目回顾(技术细节少说)、职业规划、为什么跑路、为什么选择这边、目前薪资和职级、期望薪资。

说下我是怎么复习的吧

多刷题,多总结。面试成功=基础知识+项目经验+表达技巧+运气。

我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。

一定要多去面试,这样你才能知道当前社会需要的是什么,在面试大厂之前,如果没有百分百的把握,建议可以先找一些小公司试试手,把面试中遇到的难点知识做好积累,再一个个的去解决,这样你在面试大厂的时候也就不会显得那么慌乱。

我把字节的面试题综合整理了一份,里面包括了题目的解析。内容大纲有:HTML、CSS、JS、浏览器、服务端与网络、Vue、算法。需要的同学可以去文末领取。

HTML

1.你是怎么理解HTML语义化

2.你用过哪些HTML5标签

3.meta viewport 是做什么用的,怎么写?

4.H5是什么

5.label标签的作用

6.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

7.a标签中 如何禁用href 跳转页面 或 定位链接

8.canvas在标签上设置宽高 和在style中设置宽高有什么区别

 

CSS

1.页面渲染时,dom 元素所采用的 布局模型,可通过box-sizing进行设置。根据计算宽高的

2.ie盒模型算上border、padding及自身(不算margin),标准的只算上自身窗体的大

3.几种获得宽高的方式 :

4.拓展各种获得宽高的方式 :

5.css reset和normalize.css有什么区别

6.居中方法:

7.css优先确定级:

8.如何清除浮动:

JS

1.请你谈谈Cookie的优缺点

2.Array.prototype.slice.call(arr,2)方法的作用是:

3.简单说一下浏览器本地存储是怎样的

4.原型 / 构造函数 / 实例

5.原型链:

6.执行上下文(EC)

7.变量对象

8.作用域链

浏览器

1.跨标签页通讯

2.浏览器架构

3.从输入 url 到展示的过程

4.重绘与回流

5.存储

6.Web Worker

7.V8垃圾回收机制

8.内存泄露

服务端与网路

1.http/https 协议

2.常见状态码

3.get / post

4.Websocket

5.TCP三次握手

6.TCP四次挥手

7.Node 的 Event Loop: 6个阶段

8.URL概述

Vue

1.vue.js的两个核心是什么?

2.vue 的双向绑定的原理是什么?

3.vue生命周期钩子函数有哪些?

4.请问 v-if 和 v-show 有什么区别?

5.vue常用的修饰符

6.nextTick

7.什么是vue生命周期

8.数据响应(数据劫持)

算法

1.五大算法

2.基础排序算法

3.高级排序算法

4.递归运用(斐波那契数列): 爬楼梯问题

5.数据树

6.天平找次品

总结 

19年校招的时候我就面过字节了,但是最后没选择字节。两次面试,面试体验很好,收获很大。但是他们流程过快,如果说希望去字节的,建议放最后,因为其他公司都很慢,你等不了其他公司的offer来argue了。

其次,面多几家你底气和经验会更充足,状态更好,那个时候再过来和字节刚一波。面字节之前我也是面了很多家,总体每家都进行到hr面,不过最后我还是选择了字节,总体是因为面试给我的感觉很舒服吧。

最后

我建立了一个编程资源共享学习Q裙:裙号是1021825891。整理了一套编程学习视频、书籍、笔记等等,需要文中资料的同学进群即可获得,技术是有边界的,但是学习是无界的,加油!

是金子总会发光,祝大家都可以拿到心仪的offer!

 

 

 


 

 

 


 

        

           

两年前端经验,从腾讯辞职的我跳槽到了字节(附面经详情及答案)(代码片段)

前言 19年毕业于广东一所一本大学,校招的时候拿到了腾讯、字节、拼多多等offer。最终选择了腾讯,在鹅厂待了两年多了,业务只能说一般般,比较忙,通常都是晚上十点左右才下班,而且需要随时待命... 查看详情

仅一年工作经验成功跳槽字节跳动,腾讯并拿到字节的offer,全靠这份面经!

...信,也是花了两天时间把之前几个朋友的跳槽面试经历和经验整理了一下,具体干货都给大家放在下面了!准备敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备。算法题事先已经看过 查看详情

末流985毕业,一年前端经验,从小厂辞职的我面临失业危机

前言博主19年本科毕业,末流985,一年多一点工作经验,之前一直在一家不知名小厂做前端开发,个人技术也勉勉强强吧,毕竟工作后很多面试的东西不看了,天天在写业务,所谓“业务”,就是cru... 查看详情

我不想干外包了,连续两次跳槽,我有幸成为了字节跳动的一名java后端开发~

...动的一名Java后端开发,正如标题所说,我从外包辞职了,10000小时后,走进字节跳动拿下了of 查看详情

面经程序员工作三年月薪9k,果断跳槽拿下字节,25k16薪

...f0c;美国上市的阿里成为中国体量最大的互联网公司,腾讯借助微信成为移动互联网的霸主,外企开始撤离中国,国企的光环也慢慢褪去。到了近年,应届毕业生心中最炙手可热的公司换成了BAZT及各路独角兽公司&#... 查看详情

年前刷完了这份足足485页的“1000道java工程师面经”,成功上岸字节跳动

...地时候其实并不轻松,感觉自己的技术层面还停留在3年前刚毕业的时候,对于当前互联网企业的技术栈一概不通,每天上班在学习,下班也在学习,不断地去提升自己的技术能力.也受到了很多同学的帮助࿰... 查看详情

2021年前端大厂(腾讯字节跳动阿里......)校招面试真题解析,让你面试轻松无压力!

前言校招很重要,应届生的身份很珍贵!在校招的时候与我们竞争的大部分都是没有工作经验的学生,而且校招企业对学生的包容度高,一般对企业来说,社招更看重实际工作经验,而校招更愿意“培养人... 查看详情

硕士211,零基础自学java,一年拿到bat三家offer(附面经)

...1、本文没有公众号和博客推广,请放心2、Java后台开发的经验,其他岗位没有借鉴意义3、纯发经验攒人品,有问题留言大家一起讨论,互帮互助!!4、个人学习方法,并不一定适合每个人。5、学习都是自己挤时间的,过程不表... 查看详情

三年前端寒冬入大厂,收获蚂蚁p6+字节2-1offer面经分享(代码片段)

最近因为一些原因想要换份工作,通过猎头帮我投递了几家公司,收到了蚂蚁、字节和拼多多的面试邀约,先来说下面试的结果蚂蚁:收到offer,定级P6+字节:收到offer,定级2-1拼多多:1面之后... 查看详情

三年前端寒冬入大厂,收获蚂蚁p6+字节2-1offer面经分享(代码片段)

最近因为一些原因想要换份工作,通过猎头帮我投递了几家公司,收到了蚂蚁、字节和拼多多的面试邀约,先来说下面试的结果蚂蚁:收到offer,定级P6+字节:收到offer,定级2-1拼多多:1面之后... 查看详情

两年前端经验,拿下阿字美快滴猿6家offer(掌握方法真不难)(代码片段)

前言首先先简单介绍下自己:19年科班毕业于某末流211学校毕业后在一家独角兽互联网公司工作,主要工作是做中后台系统方向,技术栈偏向React五月初打算去外面看机会,现拿到offer如下:阿里、字节、美团... 查看详情

两年前端经验,拿下阿字美快滴猿6家offer(掌握方法真不难)(代码片段)

前言首先先简单介绍下自己:19年科班毕业于某末流211学校毕业后在一家独角兽互联网公司工作,主要工作是做中后台系统方向,技术栈偏向React五月初打算去外面看机会,现拿到offer如下:阿里、字节、美团... 查看详情

工作三年终于社招进字节跳动!字节跳动,阿里,腾讯java岗面试经验汇总

前言我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了字节跳动的offer,现在我... 查看详情

三年前端经验,创业半年无果,最终还是决定进大厂(已拿字节阿里美团offer)

前言博主普通本科毕业,软件工程专业,至今为止已经有三年多的经验了,工作三年半,第一家创业公司,半年。第二家前端技术不错的公司,两年半。第三家,个人创业半年。可以看出,我是个... 查看详情

java工程师跳槽经验分享,挥泪整理面经

One:JVM实践思维图(完整版)Two:走近Java概述+Java技术体系+Java发展史+Java虚拟机家族:(SunClassic/ExactVM、HotSpotVM、Mobile/EmbeddedVM、BEAJRockit/IBMJ9VM、BEALiquidVM/AzulVM、Apa 查看详情

腾讯面经:错过校招的我如何在社招进入鹅厂

昨天收到腾讯HR的确认电话,终于长长的松了一口气,一切终于尘埃落定了。从昨天起,我也算是鹅厂的员工了。其实当时我也是看到之前老同学的链接,说腾讯正在招游戏的前端开发,粗略的看了下要求,感觉和自己也挺匹配... 查看详情

秋招总结双非本小菜鸡的坎坷秋招之路(附面经)

...,有几个专业比赛的小奖,一段为期三个多月的腾讯云智实习经历,两段还不错的项目经历(校企合作项目——物联网平台、字节跳动青训营的大作业项目——分布式搜索引擎),自认为还不错的知识储备... 查看详情

2021年前端各大公司都考了那些手写题(附带代码)(代码片段)

...设为星标。🎄前言 前端开发博客本文主要总结了2021年前端提前批和秋招所考察的手写题,题目来源于牛客网前端面经区,统计时间自3月初至10月底,面经来源于阿里、腾讯、百度、字节、美团、京东、快手、拼... 查看详情