面筋

两个月的春招算是正式结束了吧,经历也成长了很多,对于几次面试做了一些简单的记录,把能想起来的问题记下来,需要自提。

腾讯(offer已拿)

腾讯一面

  • 自我介绍
  • 什么是闭包,用处和缺点
  • 列表事件绑定(事件委托)
  • 如何确定事件委托的元素是点击的元素(target),那如何知道是当前冒泡的元素呢(currenttarget)
  • 那如果每个li元素里面还有子元素,如果点击的是子元素怎么办?(parentNode判断类名是否是li的)
  • 前端存储(cookie,localstorage,sessionstorage)区别,大小限制
  • 如果页面有一个图片很大,如何加快它的加载。(缓存,localstorage缓存,参考百度的localstorage存储)
  • 前端页面优化
  • 前端攻击和防御
  • SPA优化(服务端渲染,预渲染以及两者的区别,在何时使用)
  • 为什么选择学习vue
  • ajax如何实现(说一下具体流程),有几种状态,分别代表什么意思
  • http三次握手,为什么要三次握手
  • http和https的区别
  • https2.0优点

总体来说就是基础知识轰炸,考察根基。

腾讯二面

  • 自我介绍
  • 说一个你认为做的最好,最能体现你水平的项目吧
  • 看你vue使用的比较熟练,说下生命周期吧
  • 知道响应式数据绑定怎么实现的么
  • 你说你看过这部分源码,说下源码实现吧
  • 如果现在让你造一个vue这样的轮子,你会怎么做
  • http (三次握手,四次挥手,状态码)
  • 为什么要三次握手
  • https说一下
  • http的304状态码是什么意思
  • 说下闭包
  • 说下事件委托
  • 原型相关
  • ajax实现流程知道么

这一面主要是我来说,对每个知识点进行扩充,比如问到https的时候说了5次握手,说了为什么安全,说了使用http2.0可以解决五次握手带来的性能损耗,问到闭包也是把优点,缺点,应用都说了一遍

腾讯三面

  • 为什么选择前端呢
  • 看你做了挺多项目的,讲一下过程吧
  • 平时如何安排时间的呢
  • 说一个你记忆最深的项目吧
  • 数据结构学了么,讲一下快排
  • 毕业之后怎么打算,考研还是什么?
  • 为什么不打算考研?
  • http状态码301 302是什么,什么区别
  • 说说https
  • 前端攻击和防御
  • 如果现在领导指派给你一个你不可能完成的任务,你怎么办
  • 为什么第一志愿选择广州(去哪都可以,但是又必须要选,所以随便选了一个。。。。)
  • 三个箱子,分别装苹果、橘子、苹果橘子,都贴着标签表示里面装的是什么水果,但是三个箱子的标签都是错的,你只有一次机会拿一个箱子的一个水果,怎么做可以将标签还原?
  • 开放题,如何统计全国小学生玩手游的时长?

hr面

聊天,运动,做饭,性格,做的最好的项目,最让你失落的事等等,用三个词评价自己等等


阿里(等待hr面。。。)

阿里一面(基础知识轰炸)

  • 自我介绍
  • 看你也用过java,说下java和js的区别吧
  • 引用和基本变量说一下
  • 说下js的闭包和作用域链
  • let和const说一下
  • 你说你喜欢动效,用过相关的类库么,比如d3之类的?
  • 模块化了解么,介绍下(AMD,CMD,UMD,Common.js,es6 import)
  • webpack了解么,loader和plugin的区别
  • 如何判断一个变量是数组(instanceof,isArray,toString)
  • 数组如何排序
  • 说一下数组的几个迭代方法(7个)
  • es6了解么(相关API详解)
  • Set Map的数据结构(不会)
  • promise说一下
  • 说一下es6的class和之前写法的关系(就是语法糖而已,但是还是有差别的,建议看一下阮一峰老师的ES6入门)
  • 前端攻击和防御
  • 我现在想找出数组中ID为XXX的对象,用什么方法?(find)
  • 遍历对象怎么做(for…in , object.keys)

阿里二面

  • 自我介绍
  • 介绍一个你印象最深的项目
  • 为什么会选择用vue呢
  • 说一下双向绑定的实现
  • 对项目相关的问题深入探讨。。。。。。
  • js 闭包介绍一下,优缺点,作用
  • 如何优化你的项目呢
  • 前端攻击和防御
  • 说下继承吧
  • 还有的想不起来了。。。。。

阿里三面(对项目的深入考察)

  • 这一面主要就是对着简历问你的项目经历,从学校参赛项目,到商业项目,到自己做着玩的项目,全部问一遍

阿里四面(视频面,聊人生,聊理想)

  • 自我介绍
  • 平时怎么学习的
  • 为什么想来阿里
  • 如果我现在是腾讯的面试官,你怎么回答刚刚的问题
  • 为什么会学习vue呢
  • 打算考研么
  • 为什么不考研
  • 做项目的时候遇到哪些问题,怎么解决的
  • 你说让别人认可你,一般你会怎么做让别人认可你呢
  • 如果最后你来实习,但是没有转正,你会怎么办

hr面

等待中。。。。。。

注意点:

对于腾讯前端面试,一定一定要充分准备http的相关知识,一定一定要。非常重要,面了三次技术面,http三次握手,四次挥手,原理、状态码。https原理,五次握手过程。各种http的状态码(1XX,2XX,3XX,4XX,5XX)要熟练掌握(或者背诵)。原生ajax就算背也要把流程熟记下来,ajax的五个readyState和对应的意义等等问题基本都问了好几遍。

另外 <js高级编程>(红宝书)一定一定要熟读,至少刷个两遍。一面的基础至少70%能在里面找到原原本本的答案(重点要记住闭包、继承、事件委托、垃圾回收机制、ajax源码、事件绑定源码)

如果你说你熟练或者掌握某个框架(精通大神请无视),请务必阅读相关源码,不用全部都看,只要找关键部分的实现源码查看即可。面试的时候面试官一般都会问你源码相关,就直接说你看过的部分基本就OK了。

前端优化相关就不说了好吧,面一次问一次。