第一次被一个空窗期半年的前端女生惊艳到了
🎯问:简述深度性能优化方案?
💡答:核心围绕加载与运行时。1)加载优化:使用
Vue3异步组件与路由懒加载,配合
Vite精细化分包(拆分node_modules、大库独立),对稳定库采用CDN外链并启用SRI校验。2)运行时优化:实现图片与组件懒加载(Intersection Observer
)、长列表虚拟滚动、高频组件
KeepAlive缓存。成果:首屏加载从3.5s降至1.1s,LCP提升65%,并建立性能监控进行持续追踪。
🎯问:Vue3响应式原理及注意事项?
💡答:基于Proxy的reactive与基于闭包的ref,通过effect收集依赖(track)与触发更新(trigger)。相比Vue2,优势在于直接监听对象/数组变化、支持新增属性。在大型应用中需注意:原始类型需用ref、深层响应式有递归开销、
细粒度依赖可能引发过度追踪。已手写实现简易系统,包含effect嵌套与调度器。
🎯问:跨域解决方案及安全实践?
💡答:除CORS
/代理外,还可使用WebSocket、postMessage等。生产环境采用
Nginx反向代理,并强化安全:配置特定location代理API,隐藏敏感头,严格限制CORS域名白名单,并通过WAF规则进行跨域请求风控。此举同时隐藏后端真实地址,提升安全性。
🎯问:前端工程化思维的具体实践?
💡答:工程化是通过工具、流程、规范提升协作与可维护性。实践包括:1)标准化:搭建Vite+TS项目,集成Husky+ESLint+Prettier规范代码。2)自动化:设计Jenkins流水线
,集成测试、覆盖率检查与自动部署。3)监控:搭建性能监控SDK(采集FP、LCP等)与Sentry异常告警。效果:代码规范率提升90%,线上bug复现率降低70%。
🎯问:如何保证复杂业务联调的接口质量?
💡答:推行契约先行与协作设计。1)前期介入:使用
OpenAPI规范共同设计接口,明确
数据契约。2)模拟开发:基于文档用
MSW搭建类型安全的Mock层,实现前后端并行。3)持续同步:利用工具自动生成TS类型,确保代码与文档同步。分歧时,从数据聚合角度建议设计领域化接口(如
BFF),减少前端拼接。此举缩短
联调周期约30%。
以下使我们面试官都在套的模版:
JavaScript(323题)
- 1、不会冒泡的事件有哪些?
- 2、mouseEnter 和 mouseOver 有什么区别?
- 3、MessageChannel 是什么,有什么使用场景?
- 4、async、await 实现原理
- 5、Proxy 能够监听到对象中的对象的引用吗?
- 6、如何让 var [a, b]= {a: 1,b:2}
解构赋值成功? - 7、下面代码会输出什么?
- 8、描述下列代码的执行结果
- 9、什么是作用域链
? - 10、bind、call、apply 有什么区别?如何实现一个bind?
- 11、common.js和es6中模块引入的区别?
- 12、说说 vue3 中的响应式设计原理
- 13、script标签放在header里和放在body底部里有什么区别?
- 14、下面代码中,点击“+3”按钮后,age 的值是什么?
- 15、Vue中,created和mounted两个钩子之间调用时间差值受什么影响?

HTML(57题)
- 1、什么是 DOM 和 BOM?
- 2、简单描述从输入网址到页面显示的过程
- 3、一台设备的
dpr,是否是可变的? - 4、前端该如何选择图片的格式?
- 5、前端跨页面通信,你知道哪些方法?
- 6、说说你对 Dom 树的理解
- 7、
行内元素有哪些?块级元素
有哪些?空(void)元素有那些? - 8、html和css中的图片加载与渲染规则是什么样的?
- 9、title与h1的区别、b与strong的区别、i与em的区别?
- 10、script 标签为什么建议放在 body 标签的底部(defer、async)说说你对 SSG 的理解
- 11、什么是HTML5,以及和HTML的区别是什么?
- 12、什么是
渐进增强和优雅降级? - 13、Node 和 Element 是什么关系?
- 14、导致页面加载白屏时间长的原因有哪些,怎么15、进行优化?
- 16、如何控制 input 输入框的输入字数?
React(83题)
- 1、下面代码中,点击“+3”按钮后,age 的值是什么?
- 2、React Portals 有什么用?
- 3、react 和 react-dom
是什么关系? - 4、为什么 react 需要 fiber 架构,而 Vue 却不需要?
- 5、子组件是一个 Portal,发生点击事件能冒泡到父组件吗?
- 6、说说React render方法的原理?在什么时候会被触发?
- 7、说说React事件和原生事件的执行顺序
- 8、说说对
受控组件和
非受控组件的理解,以及应用场景? - 9、你在React项目中是如何使用Redux的?项目结构是如何划分的?
- 10、说说对Redux
中间件的理解?常用的中间件有哪些?实现原理? - 11、说说你对Redux的理解?其工作原理?
- 12、说说你对
immutable的理解?如何应用在react项目中?

性能优化(25题)
- 1、script标签放在header里和放在body底部里有什么区别?
- 2、前端性能优化指标有哪些?怎么进行性能检测?
- 3、SPA(单页应用)首屏加载速度慢怎么解决?
- 4、如果使用CSS提高页面性能?
- 5、怎么进行站点内的图片性能优化?
- 6、虚拟DOM一定更快吗?
- 7、有些框架不用虚拟dom
,但是他们的性能也不错是为什么? - 8、如果某个页面有几百个函数需要执行,可以怎么优化页面的性能?
- 9、讲一下png8、png16、png32的区别,并简单讲讲 png 的压缩原理
- 10、页面加载的过程中,J5 文件是不是一定会阻塞 DOM 和 CSSOM 的构建?
- 11、React.memo()和 useMemo()的用法是什么,有哪些区别?
- 12、导致页面加载白屏时间长的原因有哪些,怎么进行优化?
Vue(80题)
- 1、Vue 有了数据响应式
,为何还要 diff ? - 2、vue3 为什么不需要时间分片?
- 3、vue3 为什么要引入 Composition API ?
- 4、computed 计算值为什么还可以依赖另外一个 computed 计算值?
- 5、说一下 vm.$set 原理
- 6、怎么在 wue 中定义
全局方法? - 7、Vue 中父组件怎么监听到子组件的生命周期?
- 8、vue组件里写的原生addEventListeners监听事件,要手动去销毁吗?为什么?
- 9、说说 vue3 中的响应式设计原理
- 10、ue中,created和mounted两个钩子之间调用时间差值受什么影响?
- 11、vue中,推荐在哪个生命周期发起请求?
- 12、为什么 react 需要 fiber 架构,而 Vue 却不需要?
- 13、SPA(单页应用)首屏加载速度慢怎么解决?
- 14、Vue2.0为什么不能检查数组的变化,该怎么解决?

前端工程化(34题)
- 1.webpack5
的主要升级点有哪些? - 2.说下vite的原理
- 3.与webpack类似的工具还有哪些?区别?
- 4.说说如何借助webpack来优化前端性能?
- 5.说说webpack proxy工作原埋?为什么能解决跨域?
- 6.说说webpack的热更新是如何做到的?原埋是什么?
- 7.说说webpack的构建流程?
- 8.说说你对webpack的理解?解决了什么问题?
- 9.webpackloader和 plugin 实现原埋
- 10.如何提高webpack的构建速度?
- 11.说说 webpack-dev-server的原埋
- 12.你对 babel 了解吗,能不能说说几个 stage 代表什么意思?
- 13.webpack的module、bundle、chunk分别指的是什么?
- 14.说说你对前端工程化的理解
- 15.说说你对 SSG 的理解
- 16.聊聊
vite 和webpack 的区别 - 17.如何提高webpack的打包速度
- 18.如何用webpack来优化前端性能
- 19.webpack的Loader和Plugin的不同

TypeScript(46题)
- 1. TypeScript中的 Declare 关键字有什么用?
- 2.解释-下TypeScript中的枚举。
- 3.TypeScript 的主要特点是什么?
- 4.TypeScript中的方法重写是什么?
- 5.什么是TypeScript
映射文件? - 6.TypeScript中的类型有哪些?
- 7.如何检查TypeScript中的null和undefined ?
- 8.如何在TypeScript中实现继承?
- 9.什么是TypeScript Declare关键字?
- 10.TypeScript和]avaScript 的区别是什么?
- 11.Typescript中什么是类类型接口?
- 12.Typescript中never 和 void 的区别?
- 13.[ypescript中 interface 和 type 的差别是什么?
- 14.TypeScript中的变量以及如何声明?
- 15.Typescript 中的类是什么?你如何定义它们?
- 16.Typescript中什么是装饰器,它们可以应用于什么?
- 17.解释如何使用 TypeScript mixin。
- 18.TypeScript 中的类型断言
是什么? - 19.TypeScript 中的模块是什么?
计算机网络(71题)
- 1.简单描述从输入网址到页面显示的过程
- 2.说说WebSocket和HTTP的区别
- 3.说说 https 的握手过程
- 4.HTTP2中,
多路复用的原理是什么? - 5.说说你对“三次握手"、“四次挥手”的理解
- 6.为什么推荐将静态资源放到cdn上?
- 7.什么是DNS劫持?
- 8.HTTP 报文结构是怎样的?
- 9. HTTPS 为什么是安全的?
- 10.Axios的原理是什么?
- 11.说说对 HTTP3 的了解
- 12.跨域时怎么处理 cookie?
- 13.POST请求的 Content-Type 常见的有哪几种?
- 14.Blob,ArrayBuffer,Base64分别有哪些使用场景?
- 15.Blob, ArrayBuffer, Base64 有什么区别?
- 16.TCP 和 UDP的区别是什么?
- 17.Http 3.0 是基于 udp 的,那么它是如何保证传输可靠性的?
- 18.说下 websocket 的连接原理
- 19.https是如何保证安全的,又是如何保证不被中间人攻击的?

Node.JS(27题)
- 1.为什么Node在使用
es module时必须加上文件扩展名? - 2.浏览器和 Node 中的
事件循环有什么区别? - 3.Node性能如何进行监控以及优化?
- 4.如何实现文件上传?说说你的思路
- 5.如何实现jwt鉴权机制?说说你的思路
- 6.说说对中间件概念的理解,如何封装node 中间件?
- 7.说说对Nodejs中的事件循环机制理解?
- 8.说说Node中的EventEmitter?如何实现-个EventEmitter?
- 9.说说对 Node 中的 Stream 的理解?应用场景?
- 10.说说对 Node 中的 Buffer 的理解?应用场景?
- 11.说说对 Node 中的 fs模块的理解?有哪些常用方法
- 12.说说对 Node 中的 process 的理解?有哪些常用方法?
- 13.Node.is 有哪些全局对象?
- 14.说说你对
Node.js 的理解?优缺点?应用场景? - 15.body-parser 这个中间件是做什么用的?
- 16.在没有asyncawait 的时候,koa是怎么实现的洋葱模型?
- 17.koa 框架中,该怎么处理中间件的异常?
- 18.Node.is 如何调试?
- 19.两个 Node.is 进程如何通信?

以上: https://github.com/encode-studio-fe-coder/natural_traffic/wiki/scan_material3: