2026年的前端面试,真的卷疯了。 八股文倒背如流,手写题信手拈来,场景题却一问就懵; LeetCode刷了三百道,项目经历写到吐,可面试官一句“这个功能如果并发请求怎么优化”直接破防。 不是你不够努力,而是你没有抓住考官的真正考点。
这份文档,就是我3月份狂揽6个大厂Offer、斩获“面试第一名” 的秘密武器。 它不是什么零散笔记,而是我耗时半年,从20+场一线大厂面试真题中提炼出的「前端面试天花板级刷题合集」——10万字,500+高频考点,覆盖所有你能想到的和想不到的。
📌 为什么它能帮你提高通过率?
- 全链路考点覆盖: HTML/CSS、JS核心、浏览器原理、框架源码(React/Vue双向解析)、工程化、性能优化、手写题、场景设计……每一个知识点都配有“面试官追问”和“避坑指南”,让你知其然更知其所以然。
- 2026年最新风向: 我专门整理了今年的新兴考点:AI辅助开发下的工程化思考、微前端实战难点、Serverless一体化架构、WebAssembly应用场景……这些都是传统面试题里找不到的“加分项”。
- 真实面试还原: 每一道题都不是凭空编造,而是我亲历或收集的今年3月真实面经,附带了面试官的考察意图和评分标准。刷完它,你就像提前拿到了考卷答案。
- 手写题+场景题特训: 手写Promise.all、实现简易Vue响应式、设计一个错误监控SDK、优化首屏加载方案……所有高频手写和场景题都配有详细解析和多版本实现,让你在面试中下笔如有神。
从简历投递无人问津,到面试邀约接到手软;从被面试官问到哑口无言,到侃侃而谈让考官点头——这份文档,就是我唯一的“外挂”。 现在,我把这套面试天花板级文档整理出来,希望能帮到正在焦虑的你。
与其在无数资料里迷失,不如用这一份文档,精准拿下你梦想的Offer!
每日一题:
相比于npm和yarn,pnpm的优势是什么?
pnpm对比npm/yarn的优点:
- 更快速的依赖下载
- 更高效的利用磁盘空间
- 更优秀的依赖管理
我们按照包管理工具的发展历史,从 npm2 开始讲起:
npm2
用 node 版本管理工具把 node 版本降到 4,那 npm 版本就是 2.x 了。
然后找个目录,执行下 npm init -y,快速创建个 package.json。
然后执行 npm install express,那么 express 包和它的依赖都会被下载下来:
展开 express,它也有 node_modules:
再展开几层,每个依赖都有自己的 node_modules:
也就是说 npm2 的 node_modules 是嵌套的。
这很正常呀?有什么不对么?
这样其实是有问题的,多个包之间难免会有公共的依赖,这样嵌套的话,同样的依赖会复制很多次,会占据比较大的磁盘空间。
这个还不是最大的问题,致命问题是 windows 的文件路径最长是 260 多个字符,这样嵌套是会超过 windows 路径的长度限制的。
当时 npm 还没解决,社区就出来新的解决方案了,就是 yarn:
yarn
yarn 是怎么解决依赖重复很多次,嵌套路径过长的问题的呢?
铺平。所有的依赖不再一层层嵌套了,而是全部在同一层,这样也就没有依赖重复多次的问题了,也就没有路径过长的问题了。
我们把 node_modules 删了,用 yarn 再重新安装下,执行 yarn add express:
这时候 node_modules 就是这样了:
全部铺平在了一层,展开下面的包大部分是没有二层 node_modules 的:
当然也有的包还是有 node_modules 的,比如这样:
为什么还有嵌套呢?
因为一个包是可能有多个版本的,提升只能提升一个,所以后面再遇到相同包的不同版本,依然还是用嵌套的方式。
npm 后来升级到 3 之后,也是采用这种铺平的方案了,和 yarn 很类似:
当然,yarn 还实现了 yarn.lock 来锁定依赖版本的功能,不过这个 npm 也实现了。
yarn 和 npm 都采用了铺平的方案,这种方案就没有问题了么?
并不是,扁平化的方案也有相应的问题。
最主要的一个问题是幽灵依赖,也就是你明明没有声明在 dependencies 里的依赖,但在代码里却可以 require 进来。
这个也很容易理解,因为都铺平了嘛,那依赖的依赖也是可以找到的。
但是这样是有隐患的,因为没有显式依赖,万一有一天别的包不依赖这个包了,那你的代码也就不能跑了,因为你依赖这个包,但是现在不会被安装了。
这就是幽灵依赖的问题。
而且还有一个问题,就是上面提到的依赖包有多个版本的时候,只会提升一个,那其余版本的包不还是复制了很多次么,依然有浪费磁盘空间的问题。
那社区有没有解决这俩问题的思路呢?
当然有,这不是 pnpm 就出来了嘛。
那 pnpm 是怎么解决这俩问题的呢?
pnpm
回想下 npm3 和 yarn 为什么要做 node_modules 扁平化?不就是因为同样的依赖会复制多次,并且路径过长在 windows 下有问题么?
那如果不复制呢,比如通过 link。
首先介绍下 link,也就是软硬连接,这是操作系统提供的机制,硬连接就是同一个文件的不同引用,而软链接是新建一个文件,文件内容指向另一个路径。当然,这俩链接使用起来是差不多的。
如果不复制文件,只在全局仓库保存一份 npm 包的内容,其余的地方都 link 过去呢?
这样不会有复制多次的磁盘空间浪费,而且也不会有路径过长的问题。因为路径过长的限制本质上是不能有太深的目录层级,现在都是各个位置的目录的 link,并不是同一个目录,所以也不会有长度限制。
没错,pnpm 就是通过这种思路来实现的。
再把 node_modules 删掉,然后用 pnpm 重新装一遍,执行 pnpm install。
你会发现它打印了这样一句话:
包是从全局 store 硬连接到虚拟 store 的,这里的虚拟 store 就是 node_modules/.pnpm。
我们打开 node_modules 看一下:
确实不是扁平化的了,依赖了 express,那 node_modules 下就只有 express,没有幽灵依赖。
展开 .pnpm 看一下:
所有的依赖都在这里铺平了,都是从全局 store 硬连接过来的,然后包和包之间的依赖关系是通过软链接组织的。
比如 .pnpm 下的 expresss,这些都是软链接,
也就是说,所有的依赖都是从全局 store 硬连接到了 node_modules/.pnpm 下,然后之间通过软链接来相互依赖。
官方给了一张原理图,配合着看一下就明白了:
这就是 pnpm 的实现原理。
那么回过头来看一下,pnpm 为什么优秀呢?
首先,最大的优点是节省磁盘空间呀,一个包全局只保存一份,剩下的都是软硬连接,这得节省多少磁盘空间呀。
其次就是快,因为通过链接的方式而不是复制,自然会快。
这也是它所标榜的优点:
相比 npm2 的优点就是不会进行同样依赖的多次复制。
相比 yarn 和 npm3+ 呢,那就是没有幽灵依赖,也不会有没有被提升的依赖依然复制多份的问题。
这就已经足够优秀了,对 yarn 和 npm 可以说是降维打击。
总结
pnpm 最近经常会听到,可以说是爆火。本文我们梳理了下它爆火的原因:
npm2 是通过嵌套的方式管理 node_modules 的,会有同样的依赖复制多次的问题。
npm3+ 和 yarn 是通过铺平的扁平化的方式来管理 node_modules,解决了嵌套方式的部分问题,但是引入了幽灵依赖的问题,并且同名的包只会提升一个版本的,其余的版本依然会复制多次。
pnpm 则是用了另一种方式,不再是复制了,而是都从全局 store 硬连接到 node_modules/.pnpm,然后之间通过软链接来组织依赖关系。
这样不但节省磁盘空间,也没有幽灵依赖问题,安装速度还快,从机制上来说完胜 npm 和 yarn。
pnpm 就是凭借这个对 npm 和 yarn 降维打击的。
场景题部分
怎么在前端页面中添加水印?
如何封装一个请求,让其多次调用的时候,实际只发起一个请求的时候,返回同一份结果
web网页如何禁止别人移除水印
react中怎么实现下拉菜单场景,要求点击区域外能关闭下拉组件
如何搭建一套灰度系统?
React 如何实现 vue 中keep-alive 的功能?
如何监控前端页面的崩溃?
如何在前端团队快速落地代码规范
前端如何实现即时通讯?
用户访问页面白屏了,原因是啥,如何排查?
如何给自己团队的大型前端项目设计单元测试?
如何做一个前端项目工程的自动化部署,有哪些规范和流程设计?
你参与过哪些前端基建方面的建设?
假如让你负责一个商城系统的开发,现在需要统计商品的点击量,你有什么样设计与..
前端怎么做错误监控?
怎么实现同一个链接,PC访问是web应用,而手机打开是一个H5 应用?
token过期后,页面如何实现无感刷新?
如何解决页面请求接口大规模并发问题
前端单页应用History路由模式,需要如何做降级处理?
web应用中如何对静态资源加载失败的场景配置 nginx?
什么是单点登录,以及如何进行实现?
SPA首屏加载速度慢的怎么解决
Redux 和Vuex的设计思想是什么?
怎么使用webpack,将JS文件中的 css提取到单独的样式文件中?
站点一键换肤的实现方式有哪些?
实现table header 吸顶,有哪些实现方式?
怎么实现扫码登录?
如果用户说web应用感觉很反应慢或者卡顿,该如何排查?
如何设计一套统计全站请求耗时的工具
说说你对 package.json中配置项的了解
如何解决node_modules 中,同一个包安装了多个不同版本的问题?
你是怎么理解前端架构的?
怎么分析页面加载慢的原因?
为什么在技术选型中选择了webpack?
前端项目里,一般对请求request做哪些统一的封装?
如果想在小程序中嵌入markdown的文档,你有什么思路?
前端如何实现截图?
完整内容(注:答案暂略)
1.如何判断用户设备
2.将多次提交压缩成一次提交
3.介绍下navigator.sendBeacon方法
4.混动跟随导航(电梯导航)该如何实现
5退出浏览器之前,发送积压的埋点数据请求,该如何做?
6如何统计页面的long task(长任务)【热度:140】
7.PerfoemanceObserver如何测量页面性能
移动端如何实现下拉滚动加载(顶部加载)
9.判断页签是否为活跃状态
10.在网络带宽一定的情况下,切片上传感觉和整体上传消费的时间应该是差不多的这种说法正确吗?
11.大文件切片上传的时候,确定切片数量的时候,有那些考量因素
12.页面关闭时执行方法,该如何做
13.如何统计用户pv访问的发起请求数量
14.长文本溢出,展开/收起如何实现
15.如何实现鼠标拖拽
16.统计全站每一个静态资源加载耗时,该如何做
17.防止前端页面重复请求
18.ResizeObserver作用是什么
19.要实时统计用户浏览器窗口大小,该如何做
20.当项目报错,你想定位是哪个commit引l入的错误的时,该怎么做
21.如何移除一个指定的commit
22.如何还原用户操作流程
23.可有办法将请求的调用源码地址包括代码行数也上报上去?
24.请求失败会弹出一个toast,如何保证批量请求失败,只弹出一个toast[热度:420)
25.如何减少项目里面if-else【热度:310】
26.babel-runtime作用是啥【热度:200】
27.如何实现预览PDF文件
28.如何在划词选择的文本上添加右键菜单(划词:标滑动选择一组字符,对组字符进行操作)【热度:100】
29.富文本里面,是如何做到划词的(鼠标滑动选择一组字符,对组字符进行操作)?【热度:100】
30.如何做好前端监控方案【热度:672】
31.如何标准化处理线上用户反馈的问题【热度:631】
32.px 如何转为rem【热度:545】
33.浏览器有同源策略,但是为何cdn请求资源的时候不会有跨域限制【热度:579】
34.cookie可以实现不同域共享吗【热度:533】
35.axios是否可以取消请求[热度:532】
36.前端如何实现折叠面板效果?
37.dom里面,如何判定a元素是否是b元素的子元素[热度:400】
38.判断一个对象是否为空,包含了其原型链上是否有自定义数据或者方法。该如何判定?
39.is如何判空?「空」包含了:空数组、空对象、空字符串、0、undefined、null、空map、空set都属于为空的数据【热度:640】
40.css 实现翻牌效果【热度:116】
41.flex:1代表什么【热度:400】
42.一般是怎么做代码重构的
43.如何清理源码里面没有被应用的代码,主要是JS、TS.CSS代码【热度:329】
44.前端应用如何做国际化?【热度:199】
45.应用如何做应用灰度发布【热度:247】
46.「微前端]为何通常在微前端应用隔离,不选择iframe方案【热度:280】
47.[微前端]Qiankun是如何做Js隔离的【热度:228】
48.[微前端]微前端架构一般是如何做JavaScript隔离
49.[React]循环渲染中为什么推荐不用index 做key【热度:320】
50.[React如何避免使用context的时候,引起整个挂载节点树的重新渲染【热度:420】
51.前端如何实现截图?
52.当QPS达到峰值时,该如何处理?
53.js 超过Number最大值的数怎么处理?
54.使用同一个链接,如何实现PC打开是web应用、手机打开是-个H5应用?【腾讯二面】
55.如何保证用户的使用体验【字节一面】
56.如何解决页面请求接口大规模并发问题【必会】
57.设计一套全站请求耗时统计工具
58.大文件上传了解多少【百度一面】
59.H5如何解决移动端适配问题【美团一面】
60.站点一键换肤的实现方式有哪些?【美团一面】
61如何实现网页加载进度条?【百度一面】
62.常见图片懒加载方式有哪些?【京东一面】
63.cookie构成部分有哪些【百度一面】
64.扫码登录实现方式【腾讯一面]
65.DNS协议了解多少【字节一面】
66.函数式编程了解多少?【京东一面】
67.前端水印了解多少?【腾讯一—面】
68.什么是领域模型【必会】
69.一直在window上面挂东西是否有什么风险【百度一面】
70.深度SEO优化的方式有哪些,从技术层面来说
71.小程序为什么会有两个线程【腾讯一面】
72.web应用中如何对静态资源加载失败的场景做降级处理
73.html中前缀为data-开头的元素厘性是什么?
74.移动端如何实现上拉加载,下拉刷新?【字节一面】
75.如何判断dom元素是否在可视区域【字节一面】
76.前端如何用canvas来做电影院选票功能【美团一面】
77.如何通过设置失效时间清除本地存储的数据?【腾讯二面】
78.如果不使用脚手架,如果用webpack构建一个自己的 react 应用
79.用nodejs实现一个命令行工具,统计输入目录下面指定代码的行数
80.package,json里面sideEffects 厘性的作用是啥【必会】
81.script标签上有那些厘性,分别作用是啥?【必会】
82.为什么SPA应用都会提供一个hash路由,好处是什么?
83.[React]如何进行路由变化监听【字节一面】
84.单点登录是是什么,具体流程是什么【腾讯一面】
85.web网页如何禁止别人移除水印【百度一面】
86.用户访问页面白屏了,原因是啥,如何排查?
87.[代码实现]s中如何实现大对象深度对比
88.如何理解数据驱动视图,有哪些核心要素?【腾讯二面】
89.vue-cli都做了哪些事儿,有哪些功能?
90.JS执行100万个任务,如何保证浏览器不卡顿?【百度一面】
91.JS放在head里和放在body里有什么区别?
92.Eslint 代码检查的过程是啥?【必会】
93.虚拟混动加载原理是什么,用JS代码简单实现一个虚拟滚动加加载
94.[React]react-router和原生路由区别
95.html的行内元素和块级元素的区别【京东一面】
96.介绍-下 requestIdleCallback api
97.documentFfragment api是什么,有哪些使用场景?【必会】
98.git pull 和 git fetch 有啥区别?
99.前端如何做页面主题色切换【腾讯一面】
100.前端视角-如何保证系统稳定性【字节一面]
101.如何统计长任务时间、长任务执行次数【腾讯二面】
102.V8里面的JT是什么?【京东一面]
103.用Js写一个cookies解析函数,输出结果为一个对象
104.vue 中 Scoped Styles是如何实现样式隔离的,原理是啥
105.样式阿商方式有哪些【字节一面】
106.在JS中,如何解决递归导致栈溢出问题?
107.站点如何防止爬虫?【百度一面】
108.ts项目中,如何使用nodemodules里面定义的全局类型包到自己项目src下面使用?【百度二面】
109.不同标签页或窗口间的【主动推送消息机制】的方式有哪些?(不借助服务端)
110.[React】在react项目开发过程中,是否可以不用react router使用浏览器原生history路由来组织页面路由?
111.在表单校验场景中,如何实现页面视口滚动到报错的位置
112,如何一次性渲染十万条数据还能保证页面不卡顿【百度二面】
113.[webpack】打包时hash码是如何生成的【必会】
114.如何从0到1搭建前端基建【京东一面】
115.你在开发过程中,使用过哪些TS的特性或者能力?【美团一面】
116.JS的加载会阻塞浏览器渲染吗?【百度一面】
117.浏览器对队头阻寒有什么优化?【百度一面)
118.Webpack项目中通过script标签引入资源,在项目中如何处理?
119.应用上线后,怎么通知用户刷新当前页面?【腾讯一面】
120.Eslint 代码检查的过程是啥?
121.HTTP是一个无状态的协议,那么Web应用要怎么保持用户的登录态呢?
122.如何检测网页空闲状态(一定时间内无操作【百度二面】
123.为什么Vite 速度比Webpack快?
124.列表分页,快速翻页下的竟态问题【百度二面】
125.JS执行100万个任务,如何保证浏览器不卡顿?
126.git仓库迁移应该怎么操作
127.如何禁止别人调试自己的前端页面代码?【字节二面】
128.web系统里面,如何对图片进行优化?【必会】
129.0Auth2.0是什么登录方式
130.单点登录是如何实现的?
131.常见的登录鉴权方式有哪些?
132.需要在跨域请求中携带另外一个域名下的Cookie该如何操作?
133.vite和webpack 在热更新上有啥区别?
134.封装一个请求超时,发起重试的代码
135.前端如何设置请求超时时间timeout【必会】
136.nodejs如何充分利用多核CPU?【字节二面】
137.后端一次性返回树形结构数据,数据量非常大前端该如何处理?
138.你认为组件封装的一些基本准则是什么?
139.页面加载速度提升(性能优化)应该从哪些反向来思考?
140.前端日志埋点SDK设计思路
141.token进行身份验证了解多少?【腾讯一面】
142.在前端应用如何进行权限设计?【字节二面】
143.【低代码】代码平台一般泊染是如何设计的?
144.【低代码】代码平台一般底层协议是怎么设计的
145.[Webpack】有哪些优化项目的手段?
146.IndexedDB存储空间大小是如何约束的?
147.浏览器的存储有哪些【腾讯一面】
148.[Webpack】如何打包运行时chunk,且在项自工程中如何去加载这个运行时chunk?
149.为何现在市面上做表格泊染可视化技术的,大多数都是canvas,而很少用svg的?
150.在你的项目中,使用过哪些webpack plugin,说一下他们的作用
151.在你的项目中,使用过哪些webpackloader,说一下他们的作用
152.【React】如何避免不必要的染?【美团一面】
153.全局样式命名冲突和样式盖问题怎么解决?
154.【React】如何实现专场动画?
155.【React】从React层面上,能做的性能优化有哪些?
156.[VUE】中为何不要把v-f和v-for同时用在同一个元素上,原理是什么?
157.将静态资源缓存在本地的方式有哪些?
158.SPA首屏加载速度慢的怎么解:决
159.axios是如何区分是nodejs环境还是浏览器环境的?
160.如何拦截web应用的请求
161.前端有哪些跨页面通信方式?
162.H5下拉刷新如何实现?
163.如何修改第三方npm包?
JavaScript 面试题
相比于npm和yarn,pnpm的优势是什么?
如果使用Math.random()计算中奖概率会有什么问题吗?
怎么使用js 实现拖拽功能?
举例说明你对尾递归的理解,以及有哪些应用场景
说说你对 lterator, Generator 和 Async/Await 的理解
说说你对模块化方案的理解,比如CommonJS、AMD、CMD、ESModule分别是什么?
前端跨页面通信,你知道哪些方法?
Javascript脚本延迟加载的方式有哪些?
怎么理解ES6中 Generator的?使用场景有哪些?
导致页面加载白屏时间长的原因有哪些,怎么进行优化?
【Promise第38题】下面代码的输出是什么?
【Promise第40题】下面代码的输出是什么?
微前端中的应用隔离是什么,一般是怎么实现的?
JavaScript 对象的底层数据结构是什么?
浏览器和 Node 中的事件循环有什么区别?
版本号排序
哪些原因会导致js里this指向混乱?
React.js 面试题(源码笔记等)
fiber架构的工作原理?
React Reconciler 为何要采用 fiber 架构?
useState是如何实现的?
React Fiber是什么?
简单介绍下React中的 diff 算法
如何让 useEffect 支持 async/await?
React 中怎么实现状态自动保存(KeepAlive)?
React Fiber 是如何实现更新过程可控?
react中懒加载的实现原理是什么?
React有哪些性能优化的方法?
不同版本的 React 都做过哪些优化?
React19新特性
说说你对 React Hook的闭包陷阱的理解有哪些解决方案?
React 中,怎么给 children 添加额外的属性?
Fiber 为什么是 React 性能的一个飞跃?
Vue.js 面试题(源码笔记等)
Vue 模板是如何编译的
vue3 相比较于 vue2,在编译阶段有哪些改进?
说说Vue 页面渲染流程
Vue 项目中,你做过哪些性能优化?
如果使用Vue3.0实现一个 Modal,你会怎么进行设计?
Vue3.0里为什么要用 Proxy API替代defineProperty APl ?
Vue 有了数据响应式,为何还要 diff ?
说说 vue3 中的响应式设计原理
说说 Vue 中 css scoped 的原理
vue3 的响应式库是独立出来的,如果单独使用是什么样的效果?
手写 vue 的双向绑定
什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路
说下Vite的原理
Node.js 面试题
浏览器和 Node 中的事件循环有什么区别?
如何实现jwt鉴权机制?说说你的思路
怎么进行 Node 服务的内存优化?
为什么Node在使用es module时必须加上文件扩展名?
说说Node中的EventEmitter?如何实现一—个EventEmitter?
说说Node文件查找的优先级以及Require方法的文件查找策略?
两个 Node.js 进程如何通信?
pm2守护进程的原理是什么?
单线程的 nodejs 是如何充分利用计算机CPU 资源的呢?
body-parser 这个中间件是做什么用的?
说说对中间件概念的理解,如何封装 node中间件?
Typescript 面试题
什么是TypeScript Declare关键字?
Typescript 中的 getter/setter 是什么?你如何使用它们?
unknown 是什么类型?
never 是什么类型,详细讲一下
如何在TypeScript中实现继承?
说-说Typescript中的类及其特性。
请实现下面的 sleep 方法
Typescript中的方法重写是什么?
typescript 中的 is 关键字有什么用?
什么是Typescript映射文件?
Typescript中的类型有哪些?
Typescript中interface 和 type 的差别是什么?
编程 面试题
实现深拷贝
请手写“堆排序”
虚拟 dom 原理是什么,手写一个简单的虚拟 dom 实现
请在不使用 setTimeout 的前提下,实现setinterval
实现JSONP
实现一个类,其实例可以链式调用,它有一个sleep 方法,可以sleep一段时间后再...
编写一个vue组件,组件内部使用插槽接收外部内容,v-model双向绑定,实现折叠...
版本号排序
Promise 的 finally 怎么实现的?
实现 Promise
字符串解析问题
工程化 面试题
说说你对前端工程化的理解
webpack loader 和 plugin 实现原理
为什么 webpack 可以通过文件打包,让浏览器可以支持 CommonJs 规范?
webpack tree-shaking 在什么情况下会失效?
微前端中的路由加载流程是怎么样的?
说下Vite的原理
说说你对 source Map 的了解
说说webpack的构建流程?
ES6 代码转成 ES5 代码的实现思路是什么?
webpack的module、bundle、chunk分别指的是什么?
webpack treeshaking机制的原理是什么?
为什么 SPA 应用都会提供一个 hash 路由好处是什么?
前端性能优化(大厂专题篇)
1. script标签放在header里和放在body底部里有什么区别?
2.前端性能优化指标有哪些?怎么进行性能检测?
3.SPA(单页应用)首屏加载速度慢怎么解决?
4.如果使用CSS提高页面性能?
5.怎么进行站点内的图片性能优化?
6.虚拟DOM一定更快吗?
7.有些框架不用虚拟dom,但是他们的性能也不错是为什么?
8,如果某个页面有几百个函数需要执行,可以怎么优化页面的性能?
9.讲一下png8、png16、png32的区别,并简单讲讲png的压缩原理
10.页面加载的过程中,JS 文件是不是一定会阻塞DOM和CSSOM的构建?
11. React.memo()和useMemo(的用法是什么,有哪些区别?
12.导致页面加载白屏时间长的原因有哪些,怎么进行优化?
13.如果一个列表有100000个数据,这个该怎么进行展示?
14.DNS预解析是什么?怎么实现?
15. 在React中可以做哪些性能优化?
16.浏览器为什么要请求并发数限制?
17. 如何确定页面的可用性时间,什么是PerformanceAPI?
18.谈谈对window.requestAnimationFrame 的理解
19. css加载会造成阻塞吗?
20.什么是内存泄漏?什么原因会导致呢?
21.如何用webpack来优化前端性能
22.说说常规的前端性能优化手段
23. 什么是CSS Sprites?
24. CSS优化、提高性能的方法有哪些?
25.script标签中,async和defer两个属性有什么用途和区别?