1、WebSocket 相关
- WebSocket 是不是第三方组件?→ 不是,是浏览器原生 API;心跳是自己封装的保活机制。
- 基于什么协议?→ 应用层协议,底层 TCP,握手用 HTTP,传输用 ws/wss。
- 怎么保持长连接?→ TCP 本身持久连接 + 心跳包定时发送,防止网关 / 防火墙断开。
2、小程序 /uni-app 开发
- 是否上线?用什么技术栈?→ 微信小程序已上线,用 uni-app + Vue 开发。
- 布局方式:Flex / Grid→ 主要用 Flex 弹性布局,适配移动端最强;Grid 了解但项目用得少。
3、React Native 开发
- 是否用 TypeScript?→ 是,全程 TS,做类型约束、Props 定义、接口规范。
- TS 中如何监听变量 / 属性变化?→ TS 本身不提供监听,靠框架:React 用 useState + useEffect;Vue 用 watch /watchEffect;原生用 Proxy/Object.defineProperty。
4、RN 常用组件区别
- ScrollView vs FlatList→ ScrollView:一次性全渲染,适合少量数据;→ FlatList:虚拟列表、懒加载,适合长列表,性能更好。
5、跨端首屏加载优化问:首屏耗时怎么优化?答:
- 分包 / 懒加载 / 代码分割
- 图片压缩、图片懒加载
- 接口预加载、数据缓存
- 骨架屏减少白屏感
- 延迟非关键渲染
6、移动端安全区域适配
- 顶部刘海 / 摄像头、底部小黑条适配
- 不靠判断机型,用系统 API:RN:SafeAreaView /react-native-safe-area-context小程序:CSS 变量 env (safe-area-inset-top/bottom)
7、文件下载 & 断点续传
- PDF 等资源下载是否做断点续传?→ 做了,基于 HTTP Range 协议,记录已下载字节,中断后从对应位置继续。
- 优化并发请求是什么?→ 控制同时下载 / 请求数量,做队列限流,防止网络拥堵、页面卡顿。
二、算法 & 编程题
- 题目:寻找数组中第 K 小的元素
- 思路:快速选择(Quickselect),O (n) 平均复杂度
- 关键点:分区(小于 / 等于 / 大于 pivot)递归缩小区间
- 额外考察:工程意识→ 必须对入参做安全校验→ 数组为空、k 越界、类型非法,提前抛异常