携程前端线下面试速通 a面33min 自我介绍+实习 forEach 循环中能否使用 break?如果不能,如何提前退出? 在 forEach 循环中使用 await,循环是否会等待异步操作? 对于大数据集,哪种循环方式性能最优?为什么? for 循环和 map 循环有什么区别? 1 + "1" - 1 的输出结果是什么? 是否使用过 TypeScript?与 JavaScript 的主要区别是什么? TypeScript 有哪些面向对象的特性? TCP 为什么需要三次握手? 如果第三次握手的 ACK 丢失,如何补偿?具体重传机制是什么? 手撕(只说了思路,没真写代码): 在一个万级乱序整数数组中,如何高效找到中位数? 如何在不使用额外存储空间的情况下,将英文句子倒序? 在一个1到N的乱序数组中,N未知,有重复和缺失的数字,如何找出所有缺失数字?要求时间 O(n),空间 O(1)。
b面34min 大量实习相关提问,追问很细 手撕实现防抖 什么是闭包?它有哪些应用场景? 数组有哪些常用方法? 如何将多维数组转换为一维数组? 如何实现数组去重? 箭头函数与普通函数的区别是什么? 是否了解Vue3的Proxy?它的作用是什么? React中状态管理是指什么?你用过哪些状态管理库? 常用的Git命令有哪些?对应功能? 如何手动实现虚拟列表?如何优化长列表性能? 虚拟列表是定高还是不定高?不定高如何处理?