8.28 一面(求职首面 准备不是很充分)1.版本号排序,就是版本号比大小+sort秒了2.一道分治+递归+promise算法。说了思路后,不会,申请换一题3.手写promise.all,只写了基础版本4.问技术选型,为什么react,nextjs?5.问项目相关难点?6.如何实现离线模式的?讲service worker?7.如何抵御的xss攻击?csrf呢?https?8.有什么补充吗?tailwind动态提取,purgecss(等着面试官深挖css tree-shaking原理秀一波,没想到她不挖...)9.场景:用户在海外,服务器在国内,你如何设计以提高用户体验10.反问:我的表现,需要提升的内容,几天有结果9.5 二面1.自我介绍2.函数式编程讲讲讲了纯函数,偏函数,pipe,柯里化,以及整体关系3.类型编程讲讲讲了下类型体操,和型变问题4.场景题:根据js入参自动推断返回类型根据我讲的项目出的,解决方案是使用extends做匹配,进行三目运算。追问:还有没有其他方法使用内置高级类型,不过换汤不换药,面试官OK5.讲讲项目中的难点6.针对项目深挖深挖深挖具体到每个步骤,每个场景,怎么做,为什么7.考八股,讲下https,随便讲我:真的嘛?我想讲rsa握手,tls1.2,tls1.3可以吗?面试官:可以我:开始背诵:rsa,缺陷,tsl1.2,edche算法,tsl1.3(被打断,面试官说OK了)此时还剩psk没讲8.https中rsa加密在哪一步讲了自己的理解,大白话,面试官:OK没问题9.csrf讲讲?背诵中10.秒杀场景中csrf token如何优化?讲了讲redis,令牌限时限次追问:不用服务端存储呢?我:引出无状态,使用类jwt方法交互11.反问:我的表现,一面是否会影响综合评分,还需要哪些提高,多久出结果。9.10 三面1.自我介绍2.你使用jotai还是zustand,讲原理思路:从context和redux开始讲,然后讲jotai和zustand的时候上伪代码3.浏览器缓存知道哪些思路:四个阶段:强缓存,协商缓存,启发式缓存,缓存失败4.PushCache知道吗思路:讲http2相关,命中原理,释放原理5.V8了解多少思路:运行环境和jit以及ast遍历流程,还有v8垃圾回收追问:ast匹配手写一下在面试官提醒下写出来了6.浏览器内核了解多少思路:各个浏览器的内核,和差异深挖:字节码和机器码讲了一点,然后讲不动了,面试官也没问了7.讲下项目的auth方案思路:从session,jwt讲到CAS,OAuth,OIDC方案追问:SSO思路:相同域名SSO,跨域的SSO,联合登录和信任登录8.XSS和CSRF攻击思路:八股大展开9.TCP握手思路思路:握手携带的报文,然后双方的状态,每讲一关都追问细节,需要做到用的每个专业名词准确无误追问:握手2次和4次追问:MSL是什么?为什么要等?10.你提到的超时重传讲一下思路:基于时间和基于确认信息11.基于时间是如何计算RTO的思路:经典方法和标准方法经典方法:SRTT = (α * SRTT) + ((1 - α) * RTT) RTO = min(ubound, max(lbound, β * SRTT))标准方法:SRTT = (1 - α) * SRTT + α * RTTRTTVAR = (1 - β) * RTTVAR + β * (|RTT - SRTT|)RTO = µ * SRTT + ∂ * RTTVAR12.还有什么保证传递可靠性的办法思路:滑动窗口原理,流量控制和拥塞控制,具体到阈值定义和算法区别13.手撕:深拷贝和数组去重14反问:个人表现,提升方向