字节跳动四轮面试--全过程记录

字节跳动四轮⾯试--全过程记录
⼤概春节之后吧,就有字节跳动的hr联系到我,看到我的信息是明年毕业了,要不要试⼀下实习⾯试,我就想着反正不亏,就试⼀下吧哈哈。⾯试前
整理⼀下⾃已⽬前为⽌所做的项⽬,做⼀下项⽬的总结,到项⽬中的亮点和难点,做出⼀份归纳,以便在⾯试过程中可以和⾯试官聊⼀下。
算法题刷题,这个不⽤多说了吧,⼯作实习都需要刷⼀下的,前端的话刷到leetcode中等难度就可以了,感兴趣也可以做⼀下较难的题。
我⼤概刷了50道leetcode吧,各种类型都做⼀下那样。
前端⾯试题,强烈建议刷⽜客上的前端系列⾯试题,上⾯基本上能够涵盖百分之六⼗的⾯试题,热度⾼的那些题刷个⼆⼗题就差不多了。
锻炼⼀下说话聊天的能⼒,可以练习⼀下讲解⾃已做的项⽬,说⼀下亮点和难点,确保表达清晰,逻辑清晰,语⾔流畅。
然后就是,⾯试是开摄像头的,⾯试之前整理⼀下仪容,留个好印象也挺重要的~~
⼀⾯
⾸先是⾃我介绍,⼀⾯的⾃我介绍应该详细⼀点,毕竟是第⼀次介绍⾃已。
question one
在⾃我介绍的时候聊到了⾃已做过的项⽬,⾯试官就针对我做过的项⽬深⼊地问下去,在做⼩程序时我有对的⼏个基本api进⾏了⼆次封装,分别如下:
对于全局数据共享,进⾏简单的消息中⼼封装
对于全局路由管理,基于Map进⾏路由判断封装
对于云函数调⽤,基于promise链式,进⾏封装
其实上⾯的三个对于基本api的封装,是在做创维的项⽬时有⼀定的思考之后进⾏的,熟悉前端主流框架vue的同学应该不会陌⽣,分别对应三个主流开发⼯具包:vuex,vue-router,axios
跟⾯试官讲解了⼀轮之后,可能讲解的不是很清楚吧,然后我就请求了共享屏幕,直接打开代码给⾯试官看,让⾯试官⼀边看代码⼀边听我的讲解了。
吕侃近况这⼀部分讲完,⾯试就已经开始了⼤约半个⼩时了,这也是⼀⾯的主要部分了~
question two
问:既然聊到了⼩程序,可以聊⼀下⼩程序⽣态吗?
答:⾸先⼩程序是为了解决跨端应⽤问题的,原理是js桥,进⾏底层的隔离,再把对应的钩⼦暴漏出去形成⼩程序开发过程中使⽤的API。
ps:这⾥对于js桥的原理,⼤家去搜索⼀下了解⼀下吧,上述回答是简易版,真正⾯试肯定要聊多⼀点的。
问:⼩程序开发中,怎么做全局环境和页⾯独⽴环境的隔离?
答:⾸先,根据js桥的隔离,⼩程序也是类似单页⾯应⽤的架构,根据app.json中的配置项为主页⾯进⾏基础配置⽽已,⽐如说导航栏其实是js桥在在节点树末端加⼊官⽅写好的组件并且通过display:fixed完成的。全局⼊⼝环境是app.js,js桥在背后完成了页⾯的栈式管理,所以只要
谱纯在app.js中绑定⽅法或者类就可以完成全局环境的隔离了。
ps:对于⼩程序底层,可以参考⼩程序官⽅⽂档和⼀些博客讲解,这⾥问的⽐较深了,我并没有答得很好,希望⼤家如果遇到这个问题,可以答得更好22世纪杀人网络>红楼论坛
问:⼩程序开发中,怎么取到特定的页⾯或组件
答:⼩程序页⾯是栈式管理的,有特定的api可以取到这个栈;如果要取到特定的组件,需要在引⼊组件时绑定id,然后可以通
过selectComponent()取到对组件的引⽤
question 3
问:你刚才说有做过博客⽹站的项⽬,有什么印象深刻的地⽅吗?
答:前端⽅⾯主要都是写页⾯,写逻辑,没有太多亮点;后端⽅⾯也是增删改查为主,印象深刻的就是对于评论模块的处理。
问:评论模块怎么处理的?
答:思考过后,采⽤两张表解决这个问题,⼀张表存储根评论,与博客⽂章多对⼀相关;⼀张表存储根评论下的⼦评论或者回复,需要记录是属于回复根评论的或者是回复⼦评论的
问:有没有考虑过⼀张表就能解决呢?
答:如果使⽤⼀张表的话,就采⽤类似于树的结构,需要记录⽗评论的id,如果是根评论的话,⽗评论id就是空了
问:既然这样,写⼀个函数来处理⼀下这个结构吧,转成前端需要的结构
1-1
ps:这个问题挺经典的,不给出代码了,⼤家⾃已试⼀下吧
q&a
反问阶段,由于当时我⽹络出现问题了,就跳过结束了~~
⼆⾯
⼀样的,先是⾃我介绍,这次⾃我介绍就可以简短⼀点了,上⼀轮的⾯试官其实已经记录了挺多信息的了,不⽤说太多了
question 1
问:能不能聊⼀下,⼀个html⽂件中,<script></script>通常写在哪?为什么?
答:如果单个页⾯,写在html代码之后,其实通过webpack等构建⼯具构建出来的代码也是写在html代码后⾯的,这是为了让浏览器渲染效率提⾼所做的。因为浏览器在把我们写的代码转换成我们看到的页⾯是先维护两棵树的,⼀棵树是元素节点信息的树,⼀棵是节点样式信息的树,在两棵树构建完
成后才会进⾏树的合并,⽣成⼀棵包含样式,属性等各种信息的节点树,最后才根据这棵节点信息树把页⾯画出来。⽽因为js脚本语⾔是可能会操作元素节点信息的树的,所以浏览器在碰到js脚本时会停下树的构建⽽先把js代码执⾏完,这样会造成页⾯性能的变差,所以尽量把js 脚本放到html代码的后⾯,或者使⽤async,defer异步加载脚本。
ps:浏览器原理前端的同学还是要了解⼀下的,搜⼀下资料看⼀下即可
问:既然说到渲染的过程,做道题吧,把这个描述对象渲染成节点树
2-1
ps:经典前端⾯试题,问题不⼤
question 2
问:
2-2
ps:也是经典⾯试题吧,通过不同浏览器⽀持的特殊js-api可以检测;css⾥也有wekit这样的标准可以检测,⼤家搜⼀下就知道了。question 3
问:
2-3
ps:依然是经典⾯试题,⾃测⼀下吧
question 4
用岁月在莲上写诗
问:
2-4
js基础,后⾯追问了new Number(1)==new Number(1)
question 5
问:
2-5
走进高三不多说了,js基础;
因为⽤到了Array.from(),追问:这个函数第⼆个参数是什么,第⼀个参数是不是传⼊任何变量都可以?ps:Array.from()传⼊的第⼀个参数是可枚举变量,可选的第⼆个参数是枚举函数
question 6
问:下⾯的代码会渲染出container实际⾼度是多⾼?怎么解决child不占⾼度的问题?

本文发布于:2024-09-22 17:19:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/683658.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:问题   节点   信息   代码   评论
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议