前端面经总结

#前端面经##秋招##大厂面试#
一面(1h)

1. 讲一个你参与过的项目,你在项目中的职责、使用的技术栈以及遇到的问题。
2. BFC的作用及触发条件,使用场景讲一下。
3. 在项目中,你使用过哪些ES6特性?
4. 常见的HTTP状态码有哪些?分别表示什么含义?
5. 前端缓存机制讲一下,如何利用前端缓存机制优化性能?
6. HTTPS相较于HTTP有哪些优势?讲一下HTTPS的加密原理。
7. 请求头中包含哪些重要信息?如何通过请求头实现跨域资源共享(CORS)?
8. Vue的响应式原理是什么?如何实现数据的双向绑定?
9. Vue的响应式原理中,为什么直接通过索引修改数组元素无法触发更新?如何解决?  
10. 在使用Webpack时,你采取了哪些优化措施?
11. 地图中大量标记点(Markers)的渲染性能如何优化?
13. 实现一个函数,计算二叉树的最大深度。
● 题目描述:二叉树的深度是指从根节点到最远叶子节点的最长路径上的节点数。请实现一个函数,接收一个二叉树的根节点作为输入,返回该二叉树的最大深度。
● 输入输出要求:输入一个二叉树的根节点,输出一个整数,表示二叉树的最大深度。
● 示例:
// 示例二叉树:
//     3
//    / \
//   9  20
//     /  \
//    15   7
// 最大深度为3
const root = {
  val: 3,
  left: { val: 9, left: null, right: null },
  right: { val: 20, left: { val: 15, left: null, right: null }, right: { val: 7, left: null, right: null } }
};
console.log(maxDepth(root)); // 输出:3

14. 编写一个函数,实现两个二进制数字符串的相加,并返回结果字符串。
● 题目描述:给定两个表示二进制数的字符串,编写一个函数将它们相加,并返回相加后的结果字符串。输入和输出都为字符串,且只包含字符 '0' 和 '1'。
● 输入输出要求:输入两个字符串形式的二进制数,输出一个字符串,表示两个输入二进制数的和。
● 示例:
const a = "1101";
const b = "1011";
console.log(addBinary(a, b)); // 输出:"11000"

二面(1h)
1. 讲一下你的前端模块化的理解。
2. HTTP/2 解决 HTTP/1.1什么问题?
3. 在你的项目中,你是如何设计埋点方案统计用户点击“加入购物车”的行为?
4. Hash 模式和历史模式(History API)的路由跳转差异,如何实现服务端兼容。
5. Vue 2 的 Object.defineProperty 和 Vue 3 的 Proxy 在响应式处理数组时的区别是什么?  
6. 讲一下Vue 的异步更新策略,以及 nextTick 的实现原理。  
7. Loader 和 Plugin 在 Webpack 中的作用有何不同?举例说明常见应用场景。  
8. Webpack 热更新(HMR)的实现原理,包括客户端和服务端的协作流程。
9. 手写一个支持异步链式调用的 Promise 基础版本,需包含 resolve 和 then 方法。 
10. 给定数组 nums,判断是否存在三个元素 a, b, c 使得 a + b + c = 0。 
11. 设计一个地图搜索框的自动补全功能。

三面(40min)
1. 讲一个你觉的最有成就感的项目?
2. 平时用那个地图软件,你觉的百度地图和高德地图有什么区别?
3. 在很多人协作开发中,若遇到接口定义不一致或代码冲突,你会如何推动问题解决?
4. 你有没有团队中主动分享或推动技术方案的经历。
5. 平时是怎么学习前端的?了解的最新的技术是什么 ?
6. 未来3-5年,你希望在前端领域达到什么目标?地图的业务场景实现个人成长?
7. 给定两个非递减整数数组 nums1(长度为 m+n)和 nums2(长度为 n),将 nums2 合并到 nums1 中,保持非递减顺序。
全部评论
求面经
点赞 回复 分享
发布于 05-30 22:38 吉林
大佬考虑京东吗
点赞 回复 分享
发布于 05-23 14:58 北京
清华吗nb
点赞 回复 分享
发布于 05-23 13:20 山西
求面经
点赞 回复 分享
发布于 05-22 15:28 四川

相关推荐

回馈一下牛子,发一些小厂的面经~ 大厂面经随缘更新了,记录第一次找实习的日子。欢聚网络一面寄(第一次面中大厂,被拷打烂了),小红书一面寄,字节二面寄(二面状态一坨狗是),美团一面寄,哈啰已offer~迈出了第一步了,ACM区域铜邀请银勇闯前端,希望可以越来越好吧。小厂1:(1) 自我介绍(2) (3) 拷打项目(4)(5) 什么时候开始学习前端,学了多长时间。(6) 什么时候学习vue,学了多长时间。(7) vue2、vue3的区别。(8) computed 和 watch的区别,分别是干嘛的。(9) vue2、vue3分别是怎么实现watch侦听的,两者的区别。(10) vue3实现watch的proxy的缺点。(11) Es6常用的语法。(12) Promise是如何实现的。(13) let 和 const 的区别(14) let、const作用域的底层原理。(15) set 和 map的区别。(16)  如何改变this,后面提示了call, apply, bind,让我分别说说。(17) 在网页输入url,页面渲染出来的全部流程。(18)  浏览器渲染页面的流程。(19)  重绘和回流(重排) 的区别。(20)  项目遇到的困难,怎么解决的。反问:(1) 我:询问我的表现(2) 我:业务,技术框架小厂2:(1) 自我介绍(2) 项目拷打(3) websocket(4) 讲讲flex, 主要用到的属性。(5) let、var,const的区别。(6) 为什么选择前端。(7) 前端学了多久。(8) 前端是学校教的吗?还是自学。(9)  vue学习了多长时间, 是怎么学习的。(10) v-if 和 v-show的区别。(11) v-if 和 v-show哪个性能较差。(12) 有没有在日常项目中使用过。(13)  vue子传父通信(14)  vue父传子通信(15)  vue2的option api 中为什么data要是一个函数,而不是直接是一个对象。(16)  vue2和vue3侦听数据的区别。小厂3:(1) 自我介绍。(2) 项目主要做了什么?(3) 项目主要用了什么技术。(4) 我在项目中主要做了什么?(5) 怎么使用的,聊天窗吗?(6) 有没有用过什么UI框架。(7) 在项目中做了哪些性能优化?可以好好总结一下。(8) 是怎么优化缓存的。详细过程,全方位拷打。(9) 如果缓存那里是写死的,能不能固定下来,不需要每次都发送网络请求。(10) 还用过什么ui框架。(11) 为什么会用到 markdown.js。(13) 知道几种选择器,详细说说。(14) Less和Sass用过哪一个。(15) 水平垂直居中的方式?有点忘记了。(16) 说说你的项目团队。(17) 用什么管理代码的?讲讲git常用命令。(18) 用什么进行代码编写,会不会用ai去协助书写代码?(19) js的数据类型有哪些?(20) 引用数据类型和值类型的区别?(21) window对象  和  document对象分别是什么。(22) 跨域是什么。(23) 怎么将字符串转换成数字?说出了一种手撸的原始人办法,脑子有点过载了。(24) v-for的key是用来干啥的。(25) vue如何实现双向绑定?(26) 有没有了解过uniapp(27) 小程序学过吗(28) 有没有了解过react,会不会react。(29) 继续拷打项目...(30) 怎么学习前端的。小厂全过,小厂杀手
郁闷的打工鸭:接好运
面试问题记录
点赞 评论 收藏
分享
评论
5
24
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务