面经
1.工作过程中最难忘的bug;怎么测试一个项目;自己比较深的心得体会;怎么才能合理的管理好一个项目
\
\
7. 中国人寿
一面
-
HTTP2.0 和 HTTP1.0 的区别,HTTP2.0 有什么缺点\
-
闭包及闭包的使用场景\
-
实现一个侧边栏组件思路\
-
浏览器缓存机制\
-
重排与重绘,怎么减少重排\
-
DOM 事件机制,不会冒泡的事件\
-
cookie 和 session 的区别\
-
sql 相关操作,增删查改\
-
web 安全,xss、csrf 攻击特点及防御方式\
\
\
-
Node 怎么做性能监控\
-
React diff 节点移动的具体过程\
-
讲一讲浏览器缓存\
-
ES5 最优的一种函数继承,静态属性怎么做继承的\
-
前端怎么做性能监控\
-
V8 引擎对垃圾回收的优化\
-
导致内存泄漏的方法,怎么监控内存泄漏\
-
作用域和执行上下文区别\
-
this的指向问题\
-
Array方法,forEach、map 对比\
-
for of 和 for in 区别;for of 循环数组时怎么拿到数组索引\
-
移动端布局方案;怎么设置根元素的font-size大小的\
-
Webpack bundle、chunk、module的区别\
-
Webpack 热更新原理,怎么找到对应的局部模块做更新的\
-
项目经历:babel插件的实现\
\
-
JS 有哪些数据类型\
-
JS 数据类型识别的方式,有什么缺点\
-
原型和原型链,函数怎么实现继承\
-
new 发生了什么\
-
symbol 类型的用法\
-
script 标签里分别设置 defer 和 async, 它们的执行顺序是怎么样的\
-
React router 的两种模式模式,怎么动态获取路由上的 id\
-
redux 中间件的实现原理\
-
React 的 purecomponent 和 component 的区别\
-
generator 函数的用法\
-
React diff 节点对比的过程\
-
Vite 打包工具的使用\
-
箭头函数和普通函数区别\
-
什么是执行上下文\
-
堆内存和栈内存,数组存储在堆内存还是栈内存\
-
HTTP2.0 相较于 HTTP1.0 的改进\
-
isNaN和number.isNaN区别\
-
闭包和内存泄漏\
-
setState 是同步还是异步的\
-
HTTP 与 HTTPS 的区别\
-
React Hooks 的 useState 为什么不能放到条件语句\
-
解释下浏览器的同源策略\
一面
-
进程通信的几种方式\
-
TCP/IP 如何保证传输稳定性\
-
对称加密和非对称加密的使用场景\
-
浏览器帧卡顿检测\
-
Vue 和 React的设计理念\
-
性能指标FP、FCP和FMP分别跟哪些因素有关\
-
低代码平台的技术原理\
-
业界其他低代码平台实现方式,对比差异\
-
nginx怎么做反向代理与负载均衡\
-
编程题:设计和实现一个 LRU (最近最少使用) 缓存机制,满足:1.获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。2.写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。\
-
CSS 预处理器对比\
-
CSS 定位有哪些取值\
-
原型与原型链,函数怎么实现继承\
-
this的指向,call、apply的区别\
-
Vue 3.0 和 2.0 区别\
-
Vue.$nextTick 作用\
-
Vue 和 React 的 diff 有什么区别\
-
proxy 拦截器的用法\
-
DNS 解析流程\
-
事件循环\
-
闭包和内存泄漏\
-
最有亮点的一个项目
\
二面\
-
HTTP 幂等性定义和常用方法的幂等性\
-
redux 单向数据流有哪些优势,redux 中间件实现原理\
-
React HOC vs renderProps\
-
浏览器里的线程与进程\
-
requestAnimationFram 与 requestIdleCallback 的区别\
-
npm管理痛点,如何解决\
-
gitflow流程、分支管理\
-
websocket建立连接过程\
-
组件/工具库打包时的格式输出,如:CommonJS、ESM、UMD等,他们之间有什么区别\
-
Http 301、302 状态码的区别\
-
H5 性能优化 \
-
编程题:设计一个flat函数将如下数组arr=[1,2,['3',4,'5',[6,[7,8],9]]]输出为1,2,'3',4,'5',6,7,8,9。至少写出两种方法,要求不能改变数组中的原始数据类型
\
\
三面
-
BI 可视化系统介绍\
-
在字节之后的提升有哪些\
-
目前前端可以做的优化有哪些\
-
新旧系统重构的时候,怎么过渡上线\
-
Vue React 的区别\
-
字节小程序介绍一下\
-
自己未来的规划。自己的优缺点、周围人人对自己的评价\
-
如何学习一门新技术\
-
对神策数据的了解\
-
对大数据的了解\
\
\
\
一面
-
less-loader 的 less 转成 css 的底层原理\
-
webpack的 loader 和 plugin 区别\
-
webpack 常用插件\
-
webpack 如何做代码拆分\
-
webpack tree shaking 原理\
-
webpack 动态导入原理\
-
webpack 热更新原理\
-
webpack5 新特性\
-
esm 和 commonjs 的区别\
-
TS 的 type 和 interface 的区别\
-
TS 怎么做枚举\
-
TS 泛型\
-
canvas 绘制流程,canvas 里的图片跨域怎么处理\
-
项目经历:babel 插件的实现\
-
编程题:实现一个深拷贝\
**
**
二面\
-
链表和线性表 crud 比较\
-
了解哪些设计模式,实现其中一个设计模式\
-
canvas 绘制流程,遇到了哪些问题\
-
从输入URL到浏览器显示页面过程中都发生了什么?\
-
移动端布局方案\
-
浏览器 Event Loop\
-
对图形绘制了解多少\
-
ES6 为什么要转成 ES5\
-
H5 开发时遇到了哪些问题,怎么定位的\
-
DOM 事件流\
-
平时怎么做性能优化\
-
最有亮点的两个项目\
\
三面\
-
HTTPS 加解密过程\
-
哈希表原理,哈希碰撞时怎么处理\
-
内存回收机制\
-
栈内存和堆内存的概念\
-
线上错误监控怎么做\
-
CI/CD 流程,有哪些改进点\
-
进程间如何通信\
-
低代码平台的实现\
-
对下一份工作的期望\
\
\
\
\
\
-
曾经做过的最有挑战的一个项目\
-
DOM 的事件机制,怎么阻止事件捕获\
-
常用的 ES6 语法有哪些,var 怎么实现let\
-
React Hooks vs Component\
-
React中的 useCallback 和 useMemo 有什么区别,什么情况下需要用 useCallback\
-
浏览器的 Event Loop 机制\
-
setState 是同步还是异步的\
-
Set 的用法,用 Set 实现数组去重\
-
Graphql 的使用\
-
移动端适配方案, rem 和 em 的区别\
-
React 解决了什么问题\
-
前端跨域怎么做\
-
编程题:用 setTimeout 实现 setInterval\
\
二面\
-
Vue 的双向绑定机制\
-
字节小程序和微信小程序区别\
-
React Fiber 机制\
-
React Hooks 的原理\
-
Node 遇到过哪些性能问题\
-
Node 做耗时的计算时候,如何避免阻塞\
-
低代码平台运行时的生成逻辑\
-
低代码平台性能优化\
-
低代码平台组件发布流程\
-
上家公司做了哪些事情以及做事的流程\
-
未来职业规划\
-
感兴趣的工作方向\
-
编程题:输入两个数组 [1,2,3,2,1], [3,2,1,4,7] 返回公共的并且长度最长子数组的长度\
\
三面
-
大文件的分片上传和断点续传怎么做的\
-
抖音APP 与 H5 如何通信\
-
现在需要用新技术,需要从哪些方面思考\
-
如何针对性能指标做优化,有没有了解过业界的性能指标统计方式\
-
Express 和 Koa 的区别\
-
项目经历\
-
推动过什么事情\
-
对下一份工作的期望\
\