前端知识体系庞杂,知识点十分琐碎,虽说面试造核弹,工作拧螺丝,但万一人家真的想招你进去造核弹咋办,毕竟造轮子,自研框架这种事在大厂很常见的啊,因此,为了更好的应对将来可能的造核弹面试,特意搜集了一些面试题,保证是时下最新的,根据小伙伴们的面经整理而成,后续也会保持更新。愿大家不再给面试吓到,如愿找到满意的工作,如对你有帮助请给个星。
- 长列表优化怎么做?
- 结合promise写一个动态的节流,promise对象变成fuifilled之后结束节流。
- 前端怎么实现拖拽, 前端怎么发送拖拽的数据
- 设计模式,说几种常见的设计模式,项目实际用到的请举例,说具体场景
- 怎么理解浏览器js是单线程的
- 浏览器事件循环机制
- js异步编程的方法
- 浏览器离线缓存(答了manifest,面试官说技术有点老,追问还有什么新的技术)
- generator
- 判断数值是否相等的运算?number == object的情况
- 数组的最大值?
- set 和array的区别,for of 和for in 的区别?
- 数组去重方式; 实现:两个数组合并去重排序(我用了sort,面试官追问了为什么给sort传入回调函数);针对这种[20, 'hello', {name: 'jack'}, {name: 'jack'}]用什么方法去重
- 实现Promise.all()
- 讲一讲polyfill
- 数据检查方式
- 手写一个promise A+规范
- 柯里化
- 闭包知道吗?项目中实际用到的场景说一下
- 垃圾回收机制
- 前端工程化有哪些了解?
- babel 的原理
- webpack 的loader用到哪些
- webpack打包的原理
- 怎么做的,里面有几个router,技术方案介绍一下
- vue按需加载
- vuex的store了解多少?
- 数组 a.length修改,vue感知得到吗?
- 拥塞控制是如何做的
- tcp如何建立连接
- 如果有一个非常大的数组,要在这个数组当中找到某个值,有什么方法
- 浏览器缓存机制,追问Expires和Max-age的区别,Expires的不足是什么?
- https认证过程
- http的请求常用的字段那些?Content-Type你知道哪些?
- post和get区别。post可以直接把参数写在url上吗
- TCP和UDP的区别
- 拥塞控制和流量控制
- http2.0 特性
- 新特性HTTP 307 状态码什么意思
- IOC说一下
- 说一下懒加载和预加载设计模式
- 快排的思想是什么?复杂度什么
- 冒泡排序的具体过程解释,时间复杂度
- dfs遍历多插树
- dfs+非递归版本
- nodejs了解吗?你知道那些模块
- 怎么判断网页的来源。除了referer字段,还有什么方式?
- 两栏自适应布局
- CSS继承的属性
- 如何避免CSS污染问题
- css垂直水平布局?
- 1px问题
- css如何实现 一个点固定频率闪现
- 布局问题,每一行有两个盒子高度不一致,怎么将他们顶部对齐
- 怎么清除浮动
- 盒模型的组成?如果给元素设置背景图,会不会出现在padding里面?怎么控制是否会出现在padding里?
The background-clip属性设置元素背景的填充方式是基于
border box
,padding box
, orcontent box
.
background-clip: border-box | padding-box | content-box;
- CSRF攻击怎么解决
- 项目遇到的最大的难点
- 项目中你觉得哪块做的逻辑复杂一些
- 有什么亮点难点
- 最近做哪些前端的东西
- 项目中权限控制怎么做的。不同人员的权限不一致如何做
- 后台管理系统是用的微前端还是其他方式?讲一下微前端
- 可视化搭建, 讲一下原理,为你们做业务效率提升了多少,优点以及一些痛点
- 进程和线程的区别
- 进程是运行在虚拟内存上的吗
- 客户端如何知道服务器传输过来的是最后一段内容
- 进程和线程之间的调度
- 进程之间的通讯方式
- SQL中事务的四个基本特性
- 自我介绍 (自己比较擅长的点)