文章目录

标签:前端工程师 Interview

前言:应该说是从2017-3月份就开始了自己的求职之旅,一路跌跌撞撞,前前后后面了不少公司,是时候总结归纳一番了。
主要面试集中在我从随手科技实习过后的那两个月里,10多家的面试,面出了经验。总体说来,机会是留给有准备的人的,准备好了,机遇便随处可见。

今日头条一面

  1. CSS文字省略的样式写法;
  2. 写一个匹配电话号码的正则表达式;
  3. 说说自己对闭包的理解,并完成相应题目的回答;
  4. 使用Ajax和JSONP进行数据交互的区别;
  5. script标签中defer和async的理解,说明添加这两个属性之后文件加载和执行的顺序;
  6. git 指令的相关操作;
  7. 对箭头函数的理解,尤其考察this;
  8. localStorage和sessionStorage、cookies的区别;
  9. 如何判断一个引用类型;
  10. 手写快速排序算法,重点考察代码风格和实现思路

由于手写快排环节错了纰漏,因此完美错失此次机会。。。

挖财一面

  1. position的取值,以及区别;
  2. 关于transform属性的考察,哪些属性可以过渡,哪些属性不可以;
  3. 伪类和伪元素是什么,区别在于;
  4. 怎样获取页面的根元素,怎样获取页面中所有的标签元素;
  5. children()和childNode()的区别;
  6. 去重的方法;
  7. 怎样实现Object.assign()方法;
  8. 对象的复制方式(JSON.parse(JSON.stringify()),这种方法的缺点是什么);
  9. JSON数据格式的一些限制;
  10. Promise封装数据请求的方法;
  11. Commonjs、CMD、AMD模块规范的理解和使用;
  12. 对webpack的了解和使用,怎样的一个实现过程;
  13. 前端安全XSS、CRSF的了解;
  14. JSONP的原理,回调函数的作用域在哪;
  15. 平时如何学习前端的;
  16. 自己做的项目有何亮点;
  17. 如何绘制一个等边三角形。

…问了超多问题,虽然有几个地方大不太好,但。。。没有然后了

滴滴出行一面(杭州)

  1. 实现一个千分位的函数,其他问题和上面的差不多
  2. 地图上面要渲染10万数据,如何做优化;

滴滴出行二面

  1. 数组的深复制;
  2. HTTPS和HTTP的通信过程,有何不同,主要说明HTTPS
  3. 几种模块化规范的区别;
  4. Vue.js中data和props的区别;
  5. 重绘和重排;
  6. GPU加速,什么情况下会触发这个东西;
  7. 对JSON对象的理解;
  8. TCP的三次握手和四次挥手过程;
  9. margin值重叠的情况

滴滴出行三面

  1. 说一下React.js、Vue.js、angular.js三者的区别,为何会选用Vue.js,它们分别适用何种场景;
  2. 移动端的页面为何适用H5开发,使用原生开发不好吗,它们的区别是什么;
  3. 自己的优势在哪;
  4. map数据结构是怎么回事;

。。。当时接到了滴滴杭州和北京的电话,滴滴出行北京面了四面,之后也没有音讯,恍恍惚惚。。。

百度一面(上海)

  1. Ajax出现的背景,为何会出现,解决了何种问题;
  2. get和post方法的区别;
  3. 自己实习所接触的项目,项目的功能模板,是一个什么样的东西;
  4. 计算机网络的七层协议(OSI标准模型);
  5. 查找单链表中的第K个元素;
    。。。

刚开始还能聊,之后一下没有底气了,气氛略显尴尬。。。

百度糯米(一面)

  1. HTTP状态码,403表示什么;
  2. cookie是在哪里设置的;
  3. JSONP中返回的东西是什么,怎样返回的;
  4. 使用CDN的原因什么
    。。。

百度糯米(二面)

  1. JSONP的原理;
  2. “use strict” 的限制是什么;
  3. JQ事件委托是怎么一回事;
  4. flex布局;
  5. 移动端适配 rem;
    。。。

百度糯米(三面)
问了一些稀奇古怪的问题,由于自己没有太放在心上,之后也没有收到消息了。。。

追一科技(深圳)

  1. HTML5、CSS3的一些新特性,CSS3动画;
  2. ES6的一些新特性,Promise的转变;
  3. 数组去重的方法;
  4. 对模块化、工程化的理解;
  5. sessionStorage和localStorage的区别;
  6. Sass使用一些特性;
  7. 实习做过什么东西;
  8. Vue.js相关(父子组件通信,兄弟组件通信,生命周期函数,路由钩子,DOM操作相关,底层原理等);
  9. typeof的取值有哪些;
  10. 怎样判断一个数组;
  11. 前端安全XSS和CRSF
  12. 对框架的关注;
  13. 是否了解过Node.js;

追一科技二面

  1. 扫描二维码,登录网页版微信的过程;
  2. 说一下Generator;
  3. 认为JS中难点,不易理解的地方有哪些;
  4. 常见的排序算法的时间复杂度,由低到高的排列;
  5. 对数据库的了解;

…面了两面吧…

水滴互助(北京)

  1. 简单说明自己的情况;
  2. 实习期做的一些事情,公司主站有多大,使用的什么技术;
  3. Vue-router路由转换,怎样做页面的跳转;
  4. fetch.js的实现,async,await同时发送多个请求;
  5. 组件之间相互通信;
  6. webpack的配置,比如文件放在哪里,如何匹配文件;
  7. Scss-loader和css-loader的区别和相应的作用;
  8. call、apply、bind三者的区别;
  9. ES6的新特性;
  10. export 和 export default的区别;
  11. ES6中新的字面量,什么是对象字面量;
  12. 解构赋值是怎么使用的;

之后说去北京进行现场面,没有去。。。

石墨文档一面

  1. 说一下自己的前端经验和项目;
  2. Vuex状态管理、mutation和action的区别;
  3. Vue-router的路径管理,怎样返回404页面;
  4. react和vue.js的区别,相应的模式是什么;
  5. 服务端页面渲染;
  6. HTML5的一些API;
  7. CSS3的一些新东西;
  8. position 的取值,sticky是什么;
  9. 设置元素垂直居中的方式;

在线编程了,当初特别想去的一家,虐惨。。。

英语流利说一面

  1. W3C标准盒模型;
  2. 垂直居中的方法;
  3. 对象的继承;
  4. TCP和UDP的区别;
  5. 订阅者/发布者实现方式;
  6. Object.keys()方法的返回值是什么;
  7. 时间捕获和事件冒泡;
  8. ES6中的箭头函数;

面试过了,之后发的笔试题没有用react写,后悔了。。。

还有几家其他,问的问题都大同小异,通过面试确实巩固了自己的基础知识,对自我有了更加深刻的认识。路漫漫其修远兮,吾将上下而求索。
加油吧,随时准备清零!

2018.2.10 晚

文章目录