前端面试总结

425 阅读5分钟

这篇文章主要总结下本人七月底八月初前后面试半个月,面试了差不多十几家公司,一开始面试的都是些小公司,再面试自己比较心仪的公司,主要是锻炼下自己的口述能力,因为现在很多线上面试的都需要口述,所以一些模棱两可的知道的知识点可能就说不清楚,所以需要自己重新梳理记录,面试常问的一些题目自己要重新学习的,基础要扎实,下面是面试问题的总结:

关于html和css

  1. rem和rem的原理

  2. 盒子垂直居中的方法

  3. css3的属性都有哪些

  4. 块和行内的区别 是什么?他们的pdding 和margin 有什么区别?

  5. 什么是BFC,BFC有什么用

  6. 布局左边固定,右面自适应的实现方法

  7. flex是什么及其原理

  8. 重绘和回流是什么,如何优化

  9. margin 和pading的百分比是基于什么的 

  10. 已知父元素宽度 ,子元素怎么写成与父元素宽度一样的正方形

html和css都是基础,基础一定要熟悉,有的公司业务要求css3和canvas,一般不问canvas

关于浏览器与http

  1. 简述浏览器的缓存(必问要自己口头说出)
  2. http和https的区别,及对称秘钥 和非对称秘钥
  3. http的状态码 常问(501,502,301,302,304,307,..)
  4. http的三次握手和四次挥手
  5. 浏览器的渲染机制
  6. 从输入Url到页面展示的详细过程
  7. sesstion和cookie的区别
  8. get和post的区别

   文章地址

  1. 从输入 URL 到页面加载完成的过程中都发生了什么事情?fex.baidu.com/blog/2014/0…
  2. 如何写出一个深拷贝 segmentfault.com/a/119000002…
  3. 三次握手和四次挥手 juejin.cn/post/684490…
  4. 前端常见的跨域 segmentfault.com/a/119000001…

关于js

  1. 说一下原型和原型链
  2. 说一下闭包,在项目中有没有用到过闭包及什么情况用的
  3. 设计模式都有什么
  4. for of和for in循环的区别及适用场景
  5. 事件委托是什么
  6. 原生获取dom有几种方式
  7. 数组去重的方法
  8. 深拷贝和浅拷贝的区别
  9. 简单说一下promise的原理及async await的使用
  10. set和map的使用
  11. let const var的区别
  12. 介绍下js事件循环,node事件循环
  13. 防抖和节流的实现并说明运用场景
  14. 普通函数和构造函数的区别
  15. 普通函数和箭头函数的区别
  16. 什么是跨域及跨域有几种实现方式
  17. es6了解吗,都新增了哪些属性
  18. es6和es5的区别
  19. 什么是内存泄漏,及造成的原因

关于vue

  1. vue的双向绑定的原理
  2. vue的自定义指令怎么实现
  3. 说一下vue、react及之间的区别,以及你个人认为哪个比较好 
  4. v-show和v-if的区别及适用于什么场景
  5. vue组件传递都有什么实现方式
  6. vue的bus的实现方式
  7. vue 生命周期
  8. 简述下vue的diff算法
  9. vue-router有几种方式,及实现原理
  10. vue2.0 和vue3.0的区别
  11. watch 和computed 有什么不同及适用于什么场景
  12. vue的minix是什么,用于什么场景
  13. vue都有什么指令
  14. vue中css样式怎么避免全局污染,及实现的原理
  15. vue中nectTick的方法的实现原理
  16. vue中的fetch和ajax有什么不同,原理是什么
  17. vue中v-for为什么要用key值

因为在以前的项目中接触react比较少,对面试官说对vue比较熟悉,所以一般都面试vue的知识点

关于webpack与业务

  1. webpack优化打包优化(要细说,一些api要记住,面试官会深问,比如happypack多线程编译loader怎么写)

  2. webpack的plugin的原理是什么

  3. webpack的Source map是什么

  4. 项目中哪个目录文件的图片webpack不打包

  5. webpack的打包流程

关于项目

  1. 移动端首页的优化
  2. 前端页面的优化
  3. 怎么做的前端监测,异常监测和页面监测
  4. 轮播图怎么实现
  5. app与h5怎么交互的
  6. 你做过你认为最复杂的业务说一下
  7. 你认为你做的比较好的组件是什么
  8. 说一下你觉得你做的最好的项目是哪个,为什么
  9. 上传图片怎么做上传loading进度条
  10. websoket用过吗?请简述下。怎么保持长连接
  11. 什么是CDN,CDN的原理是什么,有什么好处
  12. 如果用户频繁点击按钮请求接口应该怎么处理
  13. 小程序多端开发底层的原理
  14. react vue angluer 的优缺点及什么项目适合
  15. XSS攻击与CSRF攻击

面试官都会问前端页面的优化,cdn的缓存

你写过最好的组件,你写过觉得自己写的最好的项目,这是开发性的问题,说下自己的思路,说出项目的难点和亮点,其实我觉得作为开发三年之后再找工作,这是一个很重要的考点

算法

  1. 冒泡排序
  2. 快速排序
  3. 插入排序
  4. 选择排序
  5. 递归(斐波拉契实现输出第100个的总和)

我面试的公司都是些关于数组的排序

git

  1. git rest和git revert的区别
  2. git stash的使用

代码

  1. 手写实现call、apply、bind
  2. 手写实现new
  3. 手写深拷贝的方法
  4. [2,2,2,2,].map(parseInt)得出什么

以上是我面试分类的总结,希望可以帮助到您,也希望每位前端小伙伴都可以找到自己满意的工作