面试内容小米-小米应用商店(过)一面小米的面试官给人的感觉很亲切很真诚,是一个体验很不错的面试。css实现图片自适应宽高讲flex,手写出flex常用的属性,并且讲出作用BFC是什么项目里面的前端鉴权是怎么实现的?vue里面的虚拟dom是怎么回事?vue双向绑定讲一讲手写函数防抖和函数节流讲讲常用的es6语法,比如let、promise、class等等浏览器渲染过程,回流重绘等等,load、DOMContentLoaded等等事件的触发顺序从小米应用商店里面随便找了一个需求让我现场实现,写伪代码二面讲项目里面的鉴权和图片懒加载怎么实现的讲vue-lazyloader的原理,手写伪代码讲express框架的设计思想线上日志是如何处理的讲事件循环讲nodejs的eventEmitter的实现三面讲项目里面做的事情讲vue的响应式原理、依赖收集、监听数组、虚拟dom等等讲express的中间件系统是如何设计的现场从小米应用商店中找出一个需求现场实现,说思路,写关键的代码四面讲vue-lazyloader源码以及设计使用es5实现es6的classwebsocket握手过程浏览器的事件循环和nodejs事件循环的区别百思编程(过)这个公司是猎头推荐的,一家初创公司,CEO比较强势,也算比较有趣。一面跨域以及解决办法手写一段小算法JavaScript的sort方法内部使用的什么排序?二面这一面是CEO面,主要问了我的职业规划等等问题,在我没有表现出很强的要去该公司的意愿后,直接给我送走了…ponyAI-基础架构(过)一面讲项目里面干了啥vue-lazyloader怎么实现的vue的响应式系统、虚拟dom函数式编程手写了一个算法题二面这轮面试时从美国打电话过来的,事后才知道是Google的前端…讲讲项目里面做了什么vue原理,和react的区别(其实我没怎么用过react)JavaScript异步的处理方式,现场出了一个问题,使用promise实现三面讲项目模块规划、项目如何部署、如何优化等等手写函数的防抖手写一道算法题四面讲讲项目手写一道算法题洋钱罐(过)一面讲项目前端持久化的方式、区别vue-lazyloader的原理怎么配webpack手写vue双向绑定讲es6的一些特性,并且现场出了几个代码片段,说结果手写一道算法题http状态码二面讲项目vue-router的原理项目中怎么用的webpack,怎么优化讲express的设计原理手写一道算法题创新奇智(过)一面讲项目手动实现parseInt二面这一面居然遇到了前同事…写了一些笔试题,问了一些问题三面讲tcp/ip网络层、三次握手,为什么不能两次握手讲vue原理手写一道算法题猿辅导(跪)猿辅导好像总共就一面,期间一些实现方式和面试官有争议(没有冲突)一面手写vue的mixin方法手写promise的all方法现场出了一个移动端的小需求搜狐-垂直媒体部门(过)一面讲项目项目里面用nodejs做了啥抽取了哪些vue组件二面讲项目手写实现promise腾讯-地图(跪)腾讯两个部门面试都会先做一套笔试题,笔试题基本就是一些常见的前端问题以及算法题一面讲项目,对项目提了一些问题怎么判断一个点是否在圆形内、正方形内对笔试题腾讯-天天快报(跪)也是先做了一套笔试题,但是令人尴尬的是,面试官觉得我快排写错了,然而我只是在原地快排没有申请额外空间…对笔试题没了百度-百度云(过)这个部门今年据说升为一级部门了,好像还挺不错的一面讲项目vue响应式原理,什么是mvvmes6使用过的特性flex常见的属性css选择器的优先级抽取过哪些vue组件二面讲项目express设计原理,面试官对动态路由匹配一直追问下去,但是这里的源码设计我确实是忘了,一路讨论下去扯到了字符串的前缀树…实现一个事件发布订阅类,其实就是eventEmitter三面三面是山大老学长,聊了一些业务上的事情搜狗-手机搜狗(过)搜狗一面的体验比较差,面试官给人的感觉不太好…一面讲项目事件循环回调函数的坏处vue里面哪儿不会用到双向绑定二面忘了…快手-商业化(过)一面讲项目如何抽取公共组件的vue的响应式原理如何实现一个可设置过期时间的localStorage实现一个发布订阅系统,包括on、emit、off等等二面一道智力题软件工程思想、设计模式等等async/await代码片段,说输出结果今日头条-广告系统(过)一面讲项目讲lazyloader实现用docker做了什么用webpack做了什么手写一个算法题讲flexvue响应式原理es6二面JavaScript异步优化项目vue原理,包括计算属性、依赖收集等等用JavaScript的异步实现sleep函数算法题三面手写快排,时间复杂度,优化手写实现jsonp项目部署,线上问题等等websocket握手过程四面对vuex的理解,单向数据流设计一个单点登录的系统,类似阿里系那种手写一个算法五面实现一个联想搜索组件手写函数防抖和节流OPPO成都研发中心(过)一面讲项目讲vue的 响应式系统,讲了好久,从渲染watcher到虚拟dom,面试官还跟我讨论了好久忘了二面讲项目忘了百词斩(跪)首先会在线做一道算法题,挺简单的,百词斩感觉挂的稀里糊涂的…一面websocket握手过程tcp/ip网络层,http的特点http强行使用udp能实现吗?vue原理webpack热更新原理,使用过的插件原型、闭包、跨域手写了一道算法题为什么面这么多公司因为我是实习直接转正的,也没参加过秋招,所以对自己在市场上是个怎样的实力没有一个清晰的了解,而且我也想多了解一下其他公司在做什么,于是就尽量的多面,不过说实话面试确实挺累的。如何准备首先前端基础要过关,可以参考前端工程师手册、合格前端系列第九弹-前端面试那些事、2018前端面试押题(讲义)、Interview Book。其次,因为我是在小厂,所以可能项目复杂度没那么高,我就尽量把手头上用到过的东西都搞明白设计原理,比如vue、express、vue-lazyloader、promise等等,平时也会造一些轮子,其实这些对业务开发都是有好处的,起码可以让你知道自己在写啥。最后,计算机基础也是抛不开的,LeetCode刷200题左右,常见的排序、搜索、树遍历算法都要会,而且以这几个为基础的变形也要能看出来。