经历了几次面试,也算是一次宝贵的经历吧,把各家公司提问的问题记录下来,希望可以从中给自己或他人带来一点启发。

(面试一)领主科技

1.是否学习过计算机原理、数据结构?

2.vue实现数据绑定的方式?

3.vue有哪些常用的指令?v-if、v-show的区别?

4.接触过哪些前端框架?

5.前公司有几个前端?

6.前家公司有哪些上线产品?

7.用过哪些数据库?

8.ajax组件的运作过程?

9.用过哪些数据库?

10.堆和栈有什么区别?

11.离开上家公司的理由?

12.vue删除数组?

13.学的什么专业?

14.有两颗石头和一百层楼,石头在某层楼上扔下会碎掉。请提出一个测试方案,测出石头是从哪一层楼开始扔下会碎?(算法问题,考察动态规划。百度能搜到“两个鸡蛋和一百层楼”的问题,其实就是同一个问题)

(面试二)泰康集团

1.vuex有哪些部分?是否可以直接修改state,如果可以,为什么还需要mutation?

2.兄弟组件传递参数的其他方法(除了props、vuex)?

3.不同SPA之间的数据流是怎样的?

4.数据驱动,数据层和视图层的中间是怎么实现的?利用了js的什么特性(能知道数据发生了变化)?

5.vue实例里的data选项是对象吗?不是的话那它是什么?为什么不能是对象?

6. Vue.set()跟vuex的mutation有什么区别,什么时候会用到Vue.set()?为什么用常规赋值,vue无法检测到新增属性?这样有什么好处(指的是用Vue.set()进行增加新属性吧)?

7.如何实现token?

8.使用过什么网络请求插件?它的拦截器如何使用?(axios)

9.以往项目里文字聊天室使用的socket使用的数据结构是怎样的?

10.除了socket,服务器端还有别的方法向客户端主动发送信息吗?

11.以往项目里cookie都存哪些信息?

12.以往项目里,不同SPA怎么进行版本管理?

13.以往项目里,不同SPA之间的数据流是怎样的?

(面试三)美团打车

1.用js实现归并排序

2.实现instanceOf

3.用ES5实现原型继承

4.你在以往项目里有什么亮点?

5.socket如何实现保活?是否使用过心跳链接?

6.vue模板编译的原理?

7.协商缓存怎么实现?用了哪些首部?

注:问的感觉有些底层。之前面试过阿里体育,大多数是在考察api接口的使用,而没有考察这些接口底层如何实现,看来不同公司因为业务不同,所以倾向也不同。

(面试四)好未来

1.是否用过订阅(开发)模式?

2.vue框架是怎么实现(数据、视图双向绑定)的?

3.未来的职业规划是怎样的?是走技术路线还是产品路线?

4.链表是什么?

5.做了哪些项目?

6.webpack用过吗?

7.要做一个有年、月、日的日期选择器,说说你实现的想法?(复杂度尽可能小,提到了时间复杂度、空间复杂度)

(面试五)360

1.要做好一个表单,需要注意的是什么?

2.直播推流使用了什么协议?拉流使用了什么协议?

3.直播移动端的适配是什么问题,最后如何解决?pc端和移动端的直播分别用了什么插件?

4.自定义的表单是怎么实现的?(博主以往的一个项目有自定义表单功能)

5.以往项目遇到过哪些难点,最后是如何解决的?

6.如果遇到bug问题,应该如何去寻找原因并解决?(感觉这问题问得太泛了)

注:提问的问题都是以以往项目经验为主

(面试六)美团点评

1.js的数据类型分为原始类型和引用类型,它们的区别是什么,为什么需要引用类型?

2.使用js正则实现一个替换手机号的功能,将手机号中间四位都替换成“*”。(实操)

3.如何实现token?需要前端传什么(来给后端作为生成token的参数)?

4.https与http的区别?加密层是如何进行加密的?(加密通讯原理)

5.vuex的好处?

6.用js实现一个乱序功能,将数组元素的顺序打乱。(实操)

7.什么是跨域?怎样才算跨域?如何解决?

8.使用用过nodejs,用它来干嘛?

(面试七)玩吧

1.webpack常用的配置?

2.学过算法和数据结构吗?

3.说说缓存?

4.cookie和stoage的区别是什么?为什么要用storage?

5.强缓存和协商缓存的区别?假设一个站点有html、css、js、图片等文件,哪些文件用协商缓存,哪些用强缓存?(其实即使是同一种类型的文件,也不一定都用同一种缓存。这个问题想问的是哪些情况下用强缓存,哪些情况下用协商缓存)

6.如何实现模块化?如何加载一个模块?require和import有什么区别?

7.nodejs用过?webpack用过?

8.vue框架使用虚拟节点树的好处?

9.面向对象和面向过程的区别?es5怎么实现类?为什么类的实现用的是函数而不是对象或其他?

10.假设一个网站请求数过多,如何减少它的请求数?

11.vue双向绑定的原理?(如何做到数据改变视图?如何做到视图改变数据?)

12.初、中、高级的前端,你认为自己属于哪个层次?

13.平时写博客吗?

14.平时花多长时间学习?都学什么?