不是说他们基础不好。相反,很多人对React生命周期
、
Vue响应式原理甚至
Webpack配置项都能对答如流。真正让我感到“天塌了”的瞬间,是在连续几个候选人面对同一个看似简单的场景题时,表现出的集体性失语。
题目大概是这样的:
“假设你正在开发一个大型后台管理系统,用户反馈‘列表页在数据超过5000条后操作越来越卡’。请你描述一下你的排查思路和可能的解决方案。”
这问题没有标准答案,本意是考察问题解决路径。然而,我得到的回应,大多呈现出一种奇特的断裂:
- 第一种:立刻跳入技术细节:“可以用
虚拟列表!或者上Web Worker
!”但当我追问“你如何确认瓶颈一定在渲染,而不是数据获取或JavaScript运算?”时,对方往往愣住。他们手中有锤子(虚拟列表),于是看所有问题都像钉子,却忘了第一步应该是找到墙上需要敲的准确位置。 - 第二种:开始背诵优化清单:“减少HTTP请求、压缩资源、图片懒加载……”这些都对,但和“列表页卡顿”这个具体场景若即若离,像在回答一道背诵题。我问:“在你提到的方案里,针对这个具体问题,你认为最应该优先投入精力的前三项是什么?依据是什么?”思路便中断了。
- 第三种:最令人担忧:沉默片刻后,坦诚道:“这个……在实际工作中,我们一般都是直接用现成的组件库,没遇到过这种问题。”或者说:“我们项目没这么多数据。”
这些回答折射出一个令人不安的现实:当“八股文”式的背诵面试成为主流,筛选出来的可能不是解决实际问题的能力,而是记忆与应试的技巧。许多人已经习惯了在“已知问题域”里寻找“标准答案”,一旦被抛入一个模糊、开放、需要自己定义问题的真实场景,就失去了锚点。
以下业务场景题: https://github.com/encode-studio-fe/natural_traffic/wiki/scan_material1
1.前端如何实现截图?
2.当
QPS达到峰值时,该如何处理?
3.js 超过 Number 最大值
的数怎么处理?
4.使用同一个链接, 如何实现 PC 打开是 web 应用、手机打 开是一个
H5 应用?
5.如何保证用户的使用体验
6.如何解决页面请求接口大规模并发问题
7.设计一套全站请求耗时统计工具
8.
大文件上传了解多少
9.H5 如何解决移动端适配问题
10.站点一键换肤的实现方式有哪些?
11.如何实现网页加载进度条?
12.常见图片懒加载方式有哪些?
13.cookie 构成部分有哪些
14.扫码登录实现方式
15.
DNS 协议了解多少
16.
函数式编程了解多少?
17.前端水印了解多少?
18.什么是领域模型
19.一直在 window 上面挂东西是否有什么风险
20.深度 SEO 优化的方式有哪些,从技术层面来说
21.小程序为什么会有两个线程
22.web 应用中如何对静态资源加载失败的场景做降级处理
23.html 中前缀为>
35. web ⽹⻚如何禁⽌别⼈移除⽔印
36. ⽤⼾访问⻚⾯⽩屏了, 原因是啥, 如何排查?
37. [代码实现] JS 中如何实现⼤对象深度对⽐
38. 如何理解数据驱动视图, 有哪些核⼼要素?
39. vue-cli 都做了哪些事⼉,有哪些功能?
40. JS 执⾏ 100 万个任务, 如何保证浏览器不卡顿?
41. JS 放在 head ⾥和放在 body ⾥有什么区别?
42.
Eslint 代码检查的过程是啥?
43.
虚拟混动加载原理是什么, ⽤ JS 代码简单实现⼀个虚拟滚动加加载。
44. [React] react-router 和 原⽣路由区别
45. html的⾏内元素和块级元素的区别
46. 介绍⼀下 requestIdleCallback api
47. documentFragment api 是什么, 有哪些使⽤场景?
48. git pull 和 git fetch 有啥区别?
49. 前端如何做 ⻚⾯主题⾊切换
50.前端视角-如何保证系统稳定性
51.如何统计长任务时间、长任务执行次数
52.V8 里面的 川T是什么?
53.用 JS 写一个 cookies 解析函数,输出结果为一个对象
54.vue 中 Scoped Styles 是如何实现样式隔离的, 原理是啥?
55.样式隔离方式有哪些
56.在JS 中,如何解决递归导致栈溢出问题?
57.站点如何防止爬虫?
58.ts 项目中,如何使用 node modules 里面定义的全局类型 包到自己项目 src 下面使用?
59.不同标签页或窗口间的 【主动推送消息机制】的方式有哪 些?(不借助服务端)
60.[React]在 react 项目开发过程中,是否可以不用 react router,使用浏览器原生 history 路由来组织页面路由?
61.在表单校验场景中,如何实现页面视口滚动到报错的位置
62.如何一次性渲染十万条数据还能保证页面不卡顿
64.如何从 0到1搭建前端基建
65.你在开发过程中, 使用过哪些 TS 的特性或者能力?
66.JS 的加载会阻塞浏览器渲染吗?
67.浏览器对队头阻塞有什么优化?
68.Webpack 项目中通过 script 标签引入资源,在项目中如何 处理?
69.应用上线后,怎么通知用户刷新当前页面?
70.Eslint 代码检查的过程是啥?
71.HTTP是一个无状态的协议,那么Web应用要怎么保持用戶 的登录态呢?
72.如何检测网页空闲状态(一定时间内无操作)
73.为什么 Vite 速度比 Webpack快?
74.列表分页, 快速翻页下的竟态问题
75.JS 执行 100 万个任务,如何保证浏览器不卡顿?
76.git 仓库迁移应该怎么操作
77.如何禁止别人调试自己的前端页面代码?
78.web 系统里面,如何对图片进行优化?
79.OAuth2.0 是什么登录方式
80.单点登录是如何实现的?
81.常见的登录鉴权方式有哪些?
82.需要在跨域请求中携带另外一个域名下的 Cookie 该如何操作?
83.vite 和 webpack 在热更新上有啥区别?
84.封装一个请求超时,发起重试的代码
85.前端如何设置请求超时时间 timeout
86.nodejs 如何充分利用多核 CPU?
87.后端一次性返回树形结构数据,数据量非常大,前端该如何 处理?
88.你认为组件封装的一些基本准则是什么?
89.页面加载速度提升(性能优化)应该从哪些反向来思考?
90.前端日志埋点 SDK 设计思路
91.token 进行身份验证了解多少?
92.在前端应用如何进行权限设计?
93.[低代码]代码平台一般渲染是如何设计的?
94.[低代码]代码平台一般底层协议是怎么设计的
95.[Webpack]有哪些优化项目的手段?
96.IndexedDB 存储空间大小是如何约束的?
97.浏览器的存储有哪些
98.[Webpack]如何打包运行时 chunk,且在项目工程中,如何去加载这个运行时 chunk ?
99.为何现在市面上做表格渲染可视化技术的,大多数都是 canvas , 而很少用 svg 的?
100.在你的项目中,使用过哪些 webpack plugin,说一下他 们的作用
101.在你的项目中,使用过哪些webpack loader, 说一下他 们的作用
102.[React]如何避免不必要的渲染?
103.全局样式命名冲突和样式覆盖问题怎么解决
104.[React]如何实现专场动画?
105.[React] 从 React 层面上,能做的性能优化有哪些?
106.[Vue]中为何不要把 v-if 和 v-for 同时用在同一个元素 上, 原理是什么?
107.将静态资源缓存在本地的方式有哪些?
108.SPA首屏加载速度慢的怎么解决
109.axios 是如何区分是 nodejs 环境还是 浏览器环境 的?
110.如何拦截 web 应用的请求
111.前端有哪些跨页面通信方式?
以上: https://github.com/encode-studio-fe/natural_traffic/wiki/scan_material1