2018年腾讯前端二面总结(面向2019届学生)

前言

很认真的说吧,在和腾讯面试官的面试的过程。有点感受是在聊天同样,他们是面试官,可是感受更像是引路人,无论结果的好坏,在腾讯面试的过程,只要你认真去听去问,就能够学到不少东西吧。前端

若是你有看鹅厂wo谈会了,也会了解,平时能和这些大牛这样平静的交流的机会也不算不少的,因此但愿你们都可以在面试中学习到东西吧,接下来进入正题吧。vue

腾讯二面

自我介绍

二面的面试官和一面不是同一个面试官,因此在这个时候,个人基本介绍仍是和一面同样,介绍本身的基本信息,以及怎么想到学习前端和怎么学习前端。无论怎么样,也都要耐心吧,毕竟即便作一个事情再多,可是你面对的人不一样,仍是要保持同样的认真,甚至更加认真。node

说说TCP/IP链接过程

TCP/IP协议其实若是去理解了真的不难吧,你们能够看看我上一篇文章分享的图解HTTP,链接过程无非就是三次握手:mysql

  1. 客户端发送一个SYN给服务器,表示想链接。
  2. 服务器发送SYN和ACK给客户端,表示接受到你的请求了,而且赞成链接。
  3. 而后客户端发送ACK给服务器,表示收到而且链接。

这里我多说一下吧,若是你们理解不了的计算机网络当中的过程,建议你们能够把网络当作是快递公司,客户端当客户,服务器当作商家吧。这样TCP/IP链接的过程无非就是:ios

  1. 客户发信息说要和商家买东西
  2. 商家收到了而且给一个订单给客户填写
  3. 客户肯定以后说我填写完了

而后,就是快递公司进行送快递的过程了git

假如TCP/IP链接过程断了会怎么样?

其实这个过程就比如快递公司在送货的时候,快递不见了怎么办,那固然是客户说本身没有收到快递,而后商家又得继续补发(这里咱们不考虑快递公司能够赔钱)。大概也是这样理解吧,毕竟TCP/IP协议是可靠的传输协议,万一断了,也是有本身的处理机制的,就是没有收到信息的一方会去检查,而后从新链接从新发送,这里建议你们能够去看看网络的处理机制更加深刻了解。es6

TCP/IP断开的时候双方须要注意一些什么?

TCP/IP断开的时候,你们都知道,TCP/IP断开须要四次挥手:github

  1. 客户端发送一个FIN报文给服务器,表示我将关闭客户端到服务器端这个方向的链接。
  2. 服务器收到报文后,发送一个ACK报文给客户端。
  3. 服务器发送一个FIN报文给客户端,表示本身也将关闭服务器端到客户端这个方向的链接。
  4. 客户端收到FIN后,发回一个ACK报文给服务器,FIN的序号加1。

可是注意,为何挥手过程,第二步服务器发完信息以后,还要再发一次呢,那是由于,在第二步当中,服务器只是发送说接受到要断开了,可是服务器可能如今还有正在执行的任务,直到干完活了,再去说,如今没事了断开吧。而后客户端再接受信息,就开始断开。面试

那么你们也就能够理解了,若是在断开的时候,客户端已经不须要东西了,那么亦可将服务器第二步后继续传递数据能够关闭,固然,这也是我的的理解。你们能够把这个想象成客户说不要商家继续发货了的过程。算法

说说Vue的原理吧

其实Vue的原理的话,我也写过一篇文章,你们能够看看,具体双向绑定数怎么据实现的过程的话,我建议你们能够看看这个文章

Vue当中Dom的改变是怎么出发数据的改变的

若是你看了上面问题的第二篇文章,你就能够理解到是先将跟节点el转换成文档碎片fragment进行解析编译操做,解析完成,再将fragment添加回原来的真实dom节点中。

你以为ES6当中以为比较实用的技巧

其实这个的话,本人也写过一篇文章,写了在项目中可能常常要到的语法吧,固然,还有不少使用的,例如Promise对象等,你们能够再看看阮一峰前辈的ES6入门书

js实现异步的操做有哪些

我就简单说几个吧:

  • 利用setTimout实现异步
  • 使用Promise对象
  • 动态建立script标签
  • 利用script标签提供的async
  • 还有ES6里面async函数,使得异步操做变得更加方便
对于性能优化,你的指标是什么

其实本人虽然作了一些项目,可是用到的指标可能很少,主要也是两个:

  • 静态文件的大小
  • 加载静态资源须要的时间

可是真正的话,须要的不仅是这些,须要的是

  • 最大限度地减小HTTP请求
  • 使用内容分发网络
  • headers添加一个Expires或Cache-Control头
  • 用gzip的压缩内容
  • 将样式表在顶部
  • js代码放在底部
  • 避免使用CSS表达式
  • JavaScript和CSS放在外部
  • 减小DNS查找
  • 缩小JavaScript和CSS
  • 避免重定向
  • 删除重复的脚本和样式
  • 减小DOM元素的数量

等等等等方法,这里我就很少作介绍,虽然这些方法不少我在项目中其实都用到了,可是都是由于一开始养成了良好的编程习惯了而致使觉得这些都很正常,不过你们能够把这些知识更加的系统化吧,否则不归类的知识很容易就忘掉。

你在编写Vue的时候是怎么测试的

其实本人主要是用工具吧,Vue Devtools,固然,网上还有不少方法,本人在看vue2.0实践教程也教了很多的调试方法,可是的话,对于本身编写的程序,仍是条理清晰的,因此就没用特别多的方法。

对于操做mysql的语句,你以为有什么地方能够优化

这个主要是由于本人在简历也写了本人作的一个全栈的项目吧,mysql+nodejs+axios+vue全家桶+element-ui实现的一个学生信息管理系统。其实对于数据库mysql的优化,本人也是看过很多视频,可是过程当中,印象比较深入的就是:

  • 合理创建索引
  • 避免屡次链接查询和嵌套查询
  • 避免数据类型不一致
  • 禁止没必要要的ORDER BY排序
  • 批量INSERT插入能够合并插入
了解过慢查询吗

这个说实在的,了解过,只是毕竟是数据库的一个深刻的优化的过程,基本的过程其实就是:

  1. 先运行看看是否真的很慢,注意设置SQL_NO_CACHE
  2. where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每一个字段分别查询,看哪一个字段的区分度最高
  3. explain查看执行计划,是否与b预期一致(从锁定记录较少的表开始查询)
  4. order by limit 形式的sql语句让排序的表优先查
  5. 了解业务方使用场景
  6. 加索引时参照建索引的几大原则
  7. 观察结果,不符合预期继续从1分析
说一下git操做,git怎么进行多人协做

git操做的话,本人是从大一就使用github了,并且接触到的东西基本都是用git管理项目,所以比较熟悉一点,你们不熟悉建议能够看看廖雪峰前辈的git教程

说一下你学习的路线,怎么高效率的学习

其实这一点的话,我是深有体会啦,一面的面试官就教过我。那时候真的是获益匪浅吧,由于本人学习前端一年的过程中,先把基础学好,后来又学习框架运用。在过程中,接触到了不少新的知识,也不断地去关注前端前沿技术的发展,可是在过程中,仍是没有将知识体系化,并且整理出本身的一套解决问题的过程,我相信这也是不少人都会遇到的。不过还好,被腾讯官提了一下以后,本人也恍然大悟,将以前学习的基础知识再一次回顾和总结,由于当初理解的比较透彻回忆起来也比较快。

说说你在js高级教程第三版当中看到的一些实用的技巧

这个技巧其实不少的啦,我这里就很少说了吧,一本书里面,每一个知识点都是一个小技巧。

说说快排

快排是比较简单的排序算法了,不懂的同窗能够自行百度一下咯,各大排序算法的优点劣势原理都要了解一下的啦

还有什么问题想问的吗

这个问题其实,我仍是和一面同样,毕竟,可以和腾讯大牛聊天真的是一个不错的机会,我就请教面试官对个人表现评价一下,毕竟,这样可以进步的机会也不算不少,要珍惜。

总结

腾讯面试官真的很nice,过程当中,我耳机可能很差,有时候听不清楚问题,我去问清楚的过程,面试官仍是很耐心的跟我讲解,并且面试过程当中也对我进行指导,学习到很多的东西吧。反正,勇于挑战,勇于尝试,给本身打鸡血努力吧。

相关文章
相关标签/搜索