js 面试题汇总,面经汇总

要准备面试了汇总了一下网上(大部分是掘金)的面经,可以根据题目去搜索答案,这里并不存具体的答案


星级为从提问的频率进行标记,最高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框架的设计思想以及设计原理 ★★
  • 如何预防中间人攻击 ★
  • 你能说说缓存么 ★
  • 前端语言体系三要素 ★
  • 关系型和非关系型数据库的区别 ★
  • 项目里面的前端鉴权是怎么实现的? ★

非技术类问题

  • 你未来对于你的职业有什么规划(未来的规划) ★★★★★
  • 为什么要离开现在的公司 ★★★★
  • 你期望的薪资待遇是多少 ★★★★
  • 谈谈你在公司的绩效情况 ★★★★
  • 你有什么问题? ★★
  • 平常怎么学习前端? ★★★
  • 你们公司的岗位等级是怎么评定的,你现在是什么岗位等级 ★★★
  • 工作过程中遇到什么困难?如何解决? ★★★
  • 你觉得你做的最有成就感的一件事 ★★
  • 你一般解决问题的方法有哪些 ★★
  • 你最近在看什么书,和工作相关么,你为什么要看这些书 ★★
  • 为什么选择前端? ★★
  • 你领导对你的评价是怎么样的 ★
  • 你有对你所在的公司做过什么流程或制度规范上的改进么 ★
  • 你一般解决问题的方法有哪些 ★
  • 你是因为什么契机选择做前端 ★

有小伙伴觉得哪些缺少或错误的,可以直接私信我,最好带上你认为的星级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值