1.项目相关,OCR如何实现是怎么在团队之间沟通的?现在采用了后端返回的解决方案,前端有没有OCR的解决方案;

纯前端有第三方库,比如Tesseract.js;

在上传给后端的时候,也可以进行一部分预处理,比如压缩,表单及时反馈,图像处理等等

2.实习当中修复的BUG都是什么类型的?

3.实现过复杂动画吗?

4.爬虫怎么实现的?

5.tailwind的优势在哪?

优势解决了什么痛点
开发速度快告别 CSS 文件切换和类名思考,专注实现 UI。
高度可定制摆脱传统 UI 框架的样式束缚,轻松构建自定义设计。
设计系统一致性通过 tailwind.config.js 统一设计规范,避免“魔法数字”。
性能卓越JIT 引擎按需生成 CSS,最终产物体积极小。
直观的响应式在 HTML 中即可清晰地控制不同屏幕尺寸下的样式。
利于组件化样式与组件逻辑内聚,修改组件时影响范围可控,可维护性强。

6.说一下盒模型

[[前端面试常见题-CSS篇]]

7.页面中放图标(Icon)有哪几种方式;svg的时候如何更换背景色,用color属性的前提是什么?

方式样式控制性能可访问性
图片格式多请求/一般一般
字体图标好 (仅颜色/大小)差 (文件大)
内联 SVG极佳好 (无请求)极佳
SVG 雪碧图极佳极佳 (单请求/缓存)极佳

SVG的背景色,直接更改 background-color, SVG图形的颜色,由 fill(填充色) 和 stroke(描边色)决定; color属性默认对这两个属性无效,若想有效,则需要将 fillstroke 的属性值设置为 currentColor

8.如何确保定时器精准

  • 提高检测频率,setTimeout 1000ms -> setTimeout 200ms,
  • WebWorker,避免主线程阻塞
  • 处理偏移,包装一个setTimeout,使用performance.now来获取时间戳
  • 对于动画和游戏之类的循环,使用rAF,与浏览器渲染同步

9.说一下async和await的底层是如何实现的

async 和 await 本身是 Promise 和 Generator的语法糖;利用Generator函数可以暂停和恢复执行的特性,来等待Promise的一步操作完成;

在V8引擎中,现代版本中会通过更底层(C++)引用Promise的钩子和状态机管理来实现await,直接将其编译成更底层的字节码,绕开Generator的抽象层,从而获得更好的性能。

10.服务端如何检测服务是否失效?

检查方法优点缺点常用执行者
HTTP 端点灵活,检查深度可控,标准化需要应用代码支持,有一定开销负载均衡器, K8s, 监控系统
TCP 端口简单快速,通用性强检查深度浅,无法反映应用逻辑负载均衡器, K8s, 监控系统
执行命令可检查应用内部状态耦合度高,依赖执行环境K8s
应用心跳主动上报,可检测网络分区需要应用集成SDK,依赖中心节点服务发现系统 (Consul)
指标监控全面,可预测故障,反映性能配置复杂,需要完整监控体系监控告警系统 (Prometheus)

11.有多个commit记录,如何更改为一个commit记录

  • git reset 后 commit, 再push
  • git rebase -i,交互式变基

腾讯基础微信团队一面

作者

MeorinLime 梦灵

发布日期

2025 - 08 - 16