(给前端大学加星标,提升前端技能.)
作者:折本咲焰
https://leetcode-cn.com/circle/discuss/RgFeKx/
背景
双非一本,日语+软件工程,大三,前端开发 实习生,去年7月开始准备的实习 7月~8月hc,9月到3月js,3月底vue框架。
项目:导航 & 个人博客 & 后台管理系统,和一个后端同学3月初合作的一个原生JS项目,用了一些ES6的技术模板字符串、 箭头函数、 Promise,还有一些事件委托、 Ajax等。这个项目已经搭建在腾讯云上了,可以正常访问,出于安全考虑这里就不放地址了。
一面 | 视频面试 | 90分钟
1. 你先简单做个自我介绍吧2. 这是你自己做的吗?主要是这个管理系统是吧?3. 是用第三方的还是完全自己手写的?4. 用什么框架了吗?5. 你这个项目都是静态吗?6. 你这个文章是富文本编辑好直接放在数据库对吧?如果文章里面有不安全的标签,显示出来比较危险,你有没有做一个处理?7. 除了标签还有什么别的安全问题?这里我觉得可以答两点
过滤用户输入
markdown区域内不渲染html标签
8. 你这个没有实现登录这一套是吧?如果我要设置登录一个月的选项,如何实现这个功能?我答了:XSS注入,主要是script标签。
9. cookie和token的区别是什么?现在考虑是展示,还没有做。
给cookie设置过期时间。
10. 这个页面有没有用flex布局?11. 父容器和三个子容器:ABC,B为固定宽度,AC宽度随父容器宽度变化。这里去了解一下。
12. 浏览器地址栏中输入网址键入回车,会有哪些事情?13. 有个问题:你说来了script代码会停止渲染,其实,这个中间有三种方式,不一定都会停止,你了解这三种方式吗?
flex布局:ac设置flex1
float:abc浮动,使用calc计算宽度,中间盒子设置margin
待补充
14. 它为什么会有这三种模式?浅谈script标签中的async和defer
推荐的应用场景
defer: 如果你的脚本代码依赖于页面中的DOM元素(文档是否解析完毕),或者被其他脚本文件依赖。
**例:**评论框、代码语法高亮、polyfill.js
async: 如果你的脚本并不关心页面中的DOM元素(文档是否解析完毕),并且也不会产生其他脚本需要的数据。
**例:**百度统计
如果不太能确定的话,用defer总是会比async稳定。
15. 渲染是如何构造出渲染树的,做了哪些工作可以说一下吗?为了让开发者自己选择,可以让页面渲染更快。
16. 有没有有了解过流行的框架?比如vue、react17. 框架里面有一个diff算法,它如何去优化这个渲染的计算或者优化效率的?大概说了DOM树,树的结构,然后CSS树,把css的属性合成到DOM树上,就变成渲染树,这个树上的节点有style属性,根据style属性浏览器会对它们重排(也叫回流)和重绘,根据层级关系渲染在页面上。
18. 如何尽快地定位到被改变的节点?(开放性题目)详解vue的diff算法,我回答成了集中读dom,集中写dom。
19. 有没有试过,同样一个域名,同时的并发请求最多能到多少?20. 有这些数据我们能做哪些事情?21. 现在有一个变量,我想在一个方法里面去用它,但是我不想外面能够去改变它的值,比如第一次加载页面可以读到这个变量,但是这个变量之后不再被外面的业务逻辑去改动。我想一直访问,但是值一直是最初那个值,不受外界干扰。
diff算法的做法是:只比较同层级的节点。
我回答的做法:给每个节点以数组或者哈希的形式编号,根据索引去找变化的节点,拿一些空间换时间。
22. 有没有了解过Webpack打包这一块?23. 有没有了解过页面的首屏优化?你的DEMO是如何优化的?const不行,对象内的值可以修改。函数内可以修改,但是外面无法修改到里面的值。
24. 有没有抓包过?你如何跟踪某一个特定的请求?比如一个特定的URL,你如何把有关这部分的url数据提取出来?
缩小图片体积,放到外链引用
不操作dom的js就使用defer或者async
使用cdn加速js加载
使用骨架图,类似于youtube和知乎
25. 有多个Tab标签页,都打开腾讯视频,出了问题你如何定位哪一tab的数据?计网实验课使用wireshark抓过包,URL、端口、IP都应该是可以通过filter过滤出来的。
26. 如果不是HTTP的请求报文呢?比如FTP、WebSocket,如何在抓包的时候过滤到想要的数据?用Chrome 的开发者工具Network抓
27. TCP如何保证数据的完整性?它有一个确认的机制,如何完成这个机制?没有录自己的声音,也忘了自己在说什么。。应该是根据协议或者端口过滤吧。
28. 对于校验和有没有更深入的理解?比如它是怎么做的?29. 你说的滑动窗口是用于解决什么问题的?
提到了流量窗口,但是流量窗口和这个问题无关。
数据有可能丢失:使用超时重传。
对数据进行编号:需要按编号接收到所有数据。
最后对数据使用校验和
30. TCP和UDP的区别是什么?31. 谁的包会大一点,通常情况下?实现可靠传输(数据按序到达)、流量控制(限速)
32. 设计一套聊天系统,保证聊天内容有序不丢包,然后离线的时候还要能正常收发,我是采用TCP还是UDP?
回答了tcp,因为udp不保证可靠传输,再结合它的应用场景(实时直播、会议等),它发送的包应该要小一点。
下来查的:通常情况下不能保证说哪一个大或者小,因为业务场景不同。
TCP一个报文最长65536字节,但是一般双方会通过MSS最大报文长度限制,TCP和UDP都要通过IP层。一般又通过MTU(IP层)进行限制。
33. 算法题:二分查找2:查找指定元素的第一个和最后一个位置,给定一个按照升序排列的整数数组nums,和一个目标值target,找出给定目标值在数组中的开始位置和结束位置。
这个问题要结合TCP和UDP的特点来答,哪些该用UDP?哪些该用TCP?
只用TCP会不会有性能问题?
34. 有没有了解过http2.0?3.0呢?你觉得2.0有什么缺陷吗?1.1有什么缺陷?35. 了解过quic吗?这道题当时没跑出来,但是大致思路应该是对的,后续我有时间写一下这个题的题解(又给自己挖坑)(逃)
谷歌制定的一套基于UDP的协议。
反问
1. 您对“前端停滞了三年没有发展”怎么看?2. 是在朝统一化方向发展吗?谈到了很多技术在更新,比如框架。
大前端flutter比较火,但是不如vue和react那么摧枯拉朽,有成本和风险在。
二面 | 视频面试 | 20分钟
1. 先做个自我介绍吧2. 你是自己写的还是网上找的框架?3. 博客内容也是你自己写的?使用原生JS实现
4. 你这个没有路由吗?是的,在文章。
5. 有没有遇到什么比较难的问题吗?没有,只是单纯的display:show和none
6. 你除了列表里面的这几篇文章,还写过什么别的其他的博客吗?讲了自己使用网上的富文本js插件。
7. 看到你也去美团面试过,如果这面过了的话你会怎么选?见我的文章列表。
8. 现在是大三吗?可以实习多久?9. 对TCP和UDP了解吗?比如具体的区别是什么?10. TCP如何保证数据可达?
腾讯成立时间将近是美团的两倍,它平台资源也很丰富,能给我提供更好的发展机会。
美团的base在北京,如果可以选择的话,我更希望南下,个人意愿。
11. 服务端收到了,回ACK包的时候客户端没收到,客户端又发了一个包,它不会重复吗?确认收到和超时重传。
它还配套了流量窗口、拥塞避免这样的协议算法。
12. 那它怎么知道这个包是同一个包呢?服务端拿到这个包什么也不处理,只是把之前的确认重新发送一次。
13. 你听说过黏包吗?TCP有对数据进行编号,从0到4gb,我们假设某一个包中发送了10到50长度为40的数据,接收方可以比较已收到的内容 的序号和 刚刚到达的包数据的序号来判断是不是重复。
14. 有没有看过源码方面的东西?比如框架的源码之类的没有。网络编程中的黏包现象
15. 上学有学过c++或者其他方面的吗?目前还没有看过,框架的话,我目前还只是想尽可能去熟练掌握运用的这个阶段,我觉得先把它熟练掌握再看源码是一个比较良好的过程。
16. java垃圾回收机制了解吗?大一c++,大二java。
17. 那你介绍js的吧。了解一些js的垃圾回收机制,您问的是java的吧?
引用计数,这种不能清除循环引用的对象。引出了标记清除。
标记清除。
然后他就不想问了,不知道是着急下班回家或者觉得:没啥问的,我都会........
这时才20分钟= =。最后也没反问,面试官给人感觉急匆匆的结束了
HR面 | 视频面试 | 20分钟
1. 先自我介绍一下好吗?2. 你自己觉得前端吸引你的点在哪里?3. 在学校里面,有没有什么事情是中途差点放弃的,但是最后又完成了的呢?4. 去美国酒店实习这种工作它的挑战会很大吗?收获会很大吗?5. 暑期去那边工作了三个月就回来了是吗?6. 有读研的计划吗?7. 自己在大学里面有没有碰到过什么挫折或者困难,是怎么考虑的呢?8. 你觉得自己在前端方向上的优势是什么呢?讲了我去美国实习拿offer的经历。
9. 老家是哪里的?对于工作地点是怎么考虑的呢?基础好。
10. 为什么想去深圳?想去深圳。
11. 有亲属在腾讯工作吗?12. 除了美团的offer还有其他的吗?13. 体检身体都是健康的吗?14. 你在深圳工作只是实习还是想长期工作呢?因为你说过你女朋友在读书,到时毕业你们是怎么考虑的?
北京房价高
想去沿海地区发展,机会大
老家在山西,在重庆读书,一直想去南方一些的地方看看。
室友也拿到了腾讯offer,base在一个地方,可以互相照顾。
我仔细想了想,为什么hr会知道我有女朋友,原来他们是一个事业群的:CSIG,我之前面过两面腾讯云,都提到了这个女朋友的问题。因此我推断出:他们对于一个同学的面试都是有字面记录的,hr可以随时查看这些记录。(至少在一个事业群内是这样)
(HR说本周就能OC)
反问
1. 最快什么时候可以出结果?2. 我们是哪个事业群的?CSIG,后台应该能看到。(明明就看不到555)
终于拿到了自己特别满足的offer,在此感谢所有帮助过我的小伙伴!(泪目)
点赞和在看就是最大的支持❤️