这篇文章主要总结下本人七月底八月初前后面试半个月,面试了差不多十几家公司,一开始面试的都是些小公司,再面试自己比较心仪的公司,主要是锻炼下自己的口述能力,因为现在很多线上面试的都需要口述,所以一些模棱两可的知道的知识点可能就说不清楚,所以需要自己重新梳理记录,面试常问的一些题目自己要重新学习的,基础要扎实,下面是面试问题的总结:
关于html和css
-
rem和rem的原理
-
盒子垂直居中的方法
-
css3的属性都有哪些
-
块和行内的区别 是什么?他们的pdding 和margin 有什么区别?
-
什么是BFC,BFC有什么用
-
布局左边固定,右面自适应的实现方法
-
flex是什么及其原理
-
重绘和回流是什么,如何优化
-
margin 和pading的百分比是基于什么的
-
已知父元素宽度 ,子元素怎么写成与父元素宽度一样的正方形
html和css都是基础,基础一定要熟悉,有的公司业务要求css3和canvas,一般不问canvas
关于浏览器与http
- 简述浏览器的缓存(必问要自己口头说出)
- http和https的区别,及对称秘钥 和非对称秘钥
- http的状态码 常问(501,502,301,302,304,307,..)
- http的三次握手和四次挥手
- 浏览器的渲染机制
- 从输入Url到页面展示的详细过程
- sesstion和cookie的区别
- get和post的区别
文章地址
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?fex.baidu.com/blog/2014/0…
- 如何写出一个深拷贝 segmentfault.com/a/119000002…
- 三次握手和四次挥手 juejin.cn/post/684490…
- 前端常见的跨域 segmentfault.com/a/119000001…
关于js
- 说一下原型和原型链
- 说一下闭包,在项目中有没有用到过闭包及什么情况用的
- 设计模式都有什么
- for of和for in循环的区别及适用场景
- 事件委托是什么
- 原生获取dom有几种方式
- 数组去重的方法
- 深拷贝和浅拷贝的区别
- 简单说一下promise的原理及async await的使用
- set和map的使用
- let const var的区别
- 介绍下js事件循环,node事件循环
- 防抖和节流的实现并说明运用场景
- 普通函数和构造函数的区别
- 普通函数和箭头函数的区别
- 什么是跨域及跨域有几种实现方式
- es6了解吗,都新增了哪些属性
- es6和es5的区别
- 什么是内存泄漏,及造成的原因
关于vue
- vue的双向绑定的原理
- vue的自定义指令怎么实现
- 说一下vue、react及之间的区别,以及你个人认为哪个比较好
- v-show和v-if的区别及适用于什么场景
- vue组件传递都有什么实现方式
- vue的bus的实现方式
- vue 生命周期
- 简述下vue的diff算法
- vue-router有几种方式,及实现原理
- vue2.0 和vue3.0的区别
- watch 和computed 有什么不同及适用于什么场景
- vue的minix是什么,用于什么场景
- vue都有什么指令
- vue中css样式怎么避免全局污染,及实现的原理
- vue中nectTick的方法的实现原理
- vue中的fetch和ajax有什么不同,原理是什么
- vue中v-for为什么要用key值
因为在以前的项目中接触react比较少,对面试官说对vue比较熟悉,所以一般都面试vue的知识点
关于webpack与业务
-
webpack优化打包优化(要细说,一些api要记住,面试官会深问,比如happypack多线程编译loader怎么写)
-
webpack的plugin的原理是什么
-
webpack的Source map是什么
-
项目中哪个目录文件的图片webpack不打包
-
webpack的打包流程
关于项目
- 移动端首页的优化
- 前端页面的优化
- 怎么做的前端监测,异常监测和页面监测
- 轮播图怎么实现
- app与h5怎么交互的
- 你做过你认为最复杂的业务说一下
- 你认为你做的比较好的组件是什么
- 说一下你觉得你做的最好的项目是哪个,为什么
- 上传图片怎么做上传loading进度条
- websoket用过吗?请简述下。怎么保持长连接
- 什么是CDN,CDN的原理是什么,有什么好处
- 如果用户频繁点击按钮请求接口应该怎么处理
- 小程序多端开发底层的原理
- react vue angluer 的优缺点及什么项目适合
- XSS攻击与CSRF攻击
面试官都会问前端页面的优化,cdn的缓存
你写过最好的组件,你写过觉得自己写的最好的项目,这是开发性的问题,说下自己的思路,说出项目的难点和亮点,其实我觉得作为开发三年之后再找工作,这是一个很重要的考点
算法
- 冒泡排序
- 快速排序
- 插入排序
- 选择排序
- 递归(斐波拉契实现输出第100个的总和)
我面试的公司都是些关于数组的排序
git
- git rest和git revert的区别
- git stash的使用
代码
- 手写实现call、apply、bind
- 手写实现new
- 手写深拷贝的方法
- [2,2,2,2,].map(parseInt)得出什么
以上是我面试分类的总结,希望可以帮助到您,也希望每位前端小伙伴都可以找到自己满意的工作