要准备面试了汇总了一下网上(大部分是掘金)的面经,可以根据题目去搜索答案,这里并不存具体的答案
星级为从提问的频率进行标记,最高5星(部分的题目在我博客也有实现,可以去瞅瞅鸭O(∩_∩)O)
HTTP
- URL从输入到页面渲染全流程 ★★★★★
- 跨域是什么,解决方案 JSONP CORS ★★★★★
- GET和POST请求区别 ★★★★★
- HTTP的状态码有哪些,分别代表什么 ★★★★ 200 301 302 304 401 404 500 502 503 504
- 讲解一下HTTPS的工作原理 ★★★
- tcp/ip网络层、三次握手、四次挥手 ★★★
- HTTP、HTTPS和websocket的区别 ★★
- cookie,sessionStorage和localStorage的区别 ★★
- HTTP缓存 (协商缓存和强缓存) ★★
- 常见的htttp请求头有哪些 ★★
- HTTP2和HTTP1有什么区别 ★
- HTTP与TCP/IP或Socket的区别 ★
- 说下计算机网络的相关协议? ★
- websocket握手过程 ★
- 谈谈cookie 和 session ★
- http 1.1 vs 2.0 ★
HTML
- 如何避免回流和重绘,回流和重绘何时触发?★★★★★
- 如何理解HTML语义化 ★★★★
- 了解盒子模型吗 ★★★
- 你用过哪些 HTML 5 标签?★★★
- 什么是事件冒泡和事件捕获,区别是什么(addEventListener第三个参数) ★★
- H5 是什么? ★★
- iframe的缺点有哪些? ★
- 如何实现左边两栏一定比例,左栏高度随右栏高度自适应? ★
- 移动端自适应布局有哪些方法 ★
CSS
- 选择器以及选择器的优先级 ★★★★
- css垂直水平居中的实现方法 ★★★★
- BFC是什么?如何处理 独立排版 ★★★★
- 用过Flex吗,能否简单介绍下 (扩展 flex:1) ★★★
- 两种盒模型分别说一下 ★★★
- CSS的position属性有哪些分别有什么作用 ★★★
- 左定宽,右自适应的多种CSS布局方法 (float + margin,float + calc) ★★★
- 左右定宽,中间自适应的多种CSS布局方法 (float,float + calc, 圣杯布局) ★★★
- display 有哪些值,inline 和 inline-block 的区别 ★★★
- animate和translate常用属性介绍 ★★★
- css预处理器机制 ★★
- CSS响应式设计的方式 ★★
- css的rem em px 的区别 ★★
- 用过Grid吗,能否简单介绍下 ★
- 伪类和伪元素的区别 ★
- 绝对定位、固定定位和z-index ★
- CSS实现宽度自适应100%,宽高16:9的比例的矩形 ★
- css实现图片自适应宽高 ★
- CSS实现三角形 ★
- 块级元素和内联元素 ★
- 移动端1px适配问题 ★
JS
- 手写Promise(必考) 以及Promise内部实现原理 ★★★★★
- 闭包是什么,有什么作用,闭包的使用场景 ★★★★★
- ES6新特性(ES6需要着重看,每个特性都有可能问) ★★★★★
- 手写防抖(Debouncing)和节流(Throttling) 防抖和节流的使用场景 ★★★★★
- 什么是Event Loop?使用场景? (事件循环、事件流) ★★★★★★
- call、apply和bind的理解、并且进行实现 ★★★★
- 深拷贝和浅拷贝区别,实现JS深拷贝 ★★★★
- js性能优化有哪些方法? ★★★★
- 作用域与作用域链 ★★★★
- 原型链 ★★★★
- Ajax的原生写法 手写ajax ★★★★
- 实现继承,继承的原理 ★★★
- 实现new操作符,new操作符都做了什么? ★★★
- 箭头函数的介绍以及使用,箭头函数为什么不能作为构造函数 ★★★
- this指向问题 (这段代码里的 this 是指什么) ★★★
- 有使用过Set和Map吗,Set和Map区别 ★★★
- var,let,const区别 ★★★
- JS异步方法及回调地狱 ★★★
- 有使用过async/await,简单介绍下 ★★★
- 实现JS函数柯里化 ★★
- defineProperty写出一个对元素的数据监控 ★★
- 基本数据类型 ★★
- 实现JSON.parse ★★
- 数组扁平化实现 ★★
- 数组去重的实现方式 ★★
- 数组排序 sort ★★
- class(有可能需要用es5来实现es6的class) ★★
- 变量提升 ★★
- 解释 0.3-0.2=0.99999999… ★★
- === 和 == 的区别 ★★
- promise和setTimeout(setInterval)的区别 ★★
- 实现instanceOf ★
- instanceof与typeof的区别 ★
- 实现parseInt ★
- 手写冒泡排序,选择排序,插入排序,快速排序,贪心排序 ★
- 实现JSON.stringify ★
- null和undefined的区别 ★
- 如何遍历一个dom树 ★
- JS实现事件绑定的方法 ★
- 如何判断Array ★
- JS 垃圾回收机制 ★
- js 内存管理 ★
- 面向对象理解 ★
- 函数式编程理解 ★
- for in 和 for of 区别 ★
- 内存泄漏如何定位以及如何解决? ★
- promise和async await的区别 ★
- 介绍下事件模型(事件流) ★
- flutter ★
VUE
- vue响应式原理 ★★★★★
- vue生命周期有哪些 每个生命周期都做了什么 ★★★★★
- vue组件间通信 子 父 兄弟this, p a r e n t . parent. parent.children ★★★★★
- vue的nextTick实现原理以及应用场景 ★★★★
- vue原理★★★★
- 讲vue-lazyloader的实现原理,手写伪代码(如果有写简历上,其实就是懒加载的原理) ★★★
- 有没有使用过Vuex,有哪几种属性,简单介绍Vuex原理 ★★★★
- 前端路由有没有用过,你在项目中怎么实现路由的嵌套?★★★★
- watch和computed的区别,分别什么场景下会用到 ★★★
- vue-router的原理,vue-router 有哪几种导航钩子? ★★★
- 如何定义vue-router的动态路由,怎么获取传过来的值? ★★★
- computed实现原理 ★★★
- watch的实现原理 ★★★
- vue 对于传统页面开发有什么优点? ★★
- 单页面与多页面应用区别及优缺点? ★★
- 订阅者-发布者模式和观察者模式有区别 ★★
- vue里面的虚拟dom是什么 ★★
- vue双向绑定实现原理,手写双向绑定实现 ★★
- 手写vue的mixin方法 ★
- Vue 虚拟化列表的思路和实现原理 ★
- Vue 遇到的坑,如何解决? ★
- SSR 的好处,主要解决什么问题 ★
webpack
- webpack如何优化编译速度 ★★★★
- webpack做了什么 ★★★★
- webpack 热更新原理 ★★★
- webpack的实现原理 ★★
- webpack懒加载配置 ★
- webpack的了解 ★
- webpack 打包的整个流程,简述 webpack 插件的开发和功能 ★
微信小程序
- 介绍下小程序的原理 ★★★★
- 小程序页面之间怎么传参数 ★★★★
- 微信小程序支付的流程 ★★★★
- 微信小程序如何实现全局变量监听 ★★★
- 小程序组件间数据传递 ★★★
其他
- 前端性能优化手段 ★★★★★
- 什么是 XSS?如何预防 ★★★★
- 什么是 CSRF?如何预防?★★★★
- 什么是 中间人劫持?如何预防?★★★★
- 首屏加载性能优化 ★★★
- 什么是MVVM,什么是MVC,MVVM与MVC有什么区别 ★★★
- express框架的设计思想以及设计原理 ★★
- 如何预防中间人攻击 ★
- 你能说说缓存么 ★
- 前端语言体系三要素 ★
- 关系型和非关系型数据库的区别 ★
- 项目里面的前端鉴权是怎么实现的? ★
非技术类问题
- 你未来对于你的职业有什么规划(未来的规划) ★★★★★
- 为什么要离开现在的公司 ★★★★
- 你期望的薪资待遇是多少 ★★★★
- 谈谈你在公司的绩效情况 ★★★★
- 你有什么问题? ★★
- 平常怎么学习前端? ★★★
- 你们公司的岗位等级是怎么评定的,你现在是什么岗位等级 ★★★
- 工作过程中遇到什么困难?如何解决? ★★★
- 你觉得你做的最有成就感的一件事 ★★
- 你一般解决问题的方法有哪些 ★★
- 你最近在看什么书,和工作相关么,你为什么要看这些书 ★★
- 为什么选择前端? ★★
- 你领导对你的评价是怎么样的 ★
- 你有对你所在的公司做过什么流程或制度规范上的改进么 ★
- 你一般解决问题的方法有哪些 ★
- 你是因为什么契机选择做前端 ★
有小伙伴觉得哪些缺少或错误的,可以直接私信我,最好带上你认为的星级