包含时间线,问题和我的思路个性化问题和部分细节可能会有省略,仅供参考8.31 笔试选择应该是全a编程a一半9.10 美团一面面试官是安卓开发,所以问的全是八股1.自我介绍2.小数精度问题思路:基础回答即可,要回答出IEEE754,64位版本和其他版本区别,二进制的最终表现(0011无限循环)3.作用域问题思路:先回答基础八股,再追加v8执行器原理,追加执行栈和执行上下文的原理,引出作用域提升现象,从v8到顶层代码解释这种现象,这道题可以讲五六个知识点4.CommonJS和ES6 Module思路:直接从源码层面讲,cjs是社区实现,es6是官方实现,require讲文件代码引入+缓存判断+在函数内执行,讲五大区别,然后手写require伪代码,其中五个入参(this,module,exports,__filename__,__dirname__)的定义和指向要阐述清楚,还有循环引用问题5.原型和原型链思路:阐述原型图关系,然后顺带讲原型链继承,和其他继承(一共6种)关系和优缺点,主流现在用哪个6.一道异步问题,然后讲异步原理思路:从chrome源码讲事件队列(渡一教育那个版本),讲线程进程定义,异步定义,为什么js是单线程,浏览器有哪些队列,promise,asyncawait前世今生,generator前世今生,浏览器和node的事件循环区别7.事件机制和事件委托思路:基础八股无拓展8.项目性能优化思路思路:我的大招,讲过类似的教学视频,直接讲了10分钟,从网络,资源,缓存,代码,委托,js压缩,css摇树讲9.你提到的css摇树讲一下思路:我的陷阱,直接讲purgecss原理,上伪代码,手写selector正则,JIT原理,兜底策略10.https握手思路:讲经典RSA握手,和TLS1.2,TLS1.3,RSA和EDCHE算法,会话复用,1RTT和0RTT(PSK)11.如果你要跨端参与安卓开发,你觉得有哪些挑战回答:本身就是安卓开发出身,从高中开始接触,后面转web开发,您无需担心。12.手撕leetcode二叉树中序遍历,两种方案13.反问个人表现,部门base,下一场什么时候约9.12 美团二面二面面试官非常喜欢深挖,但没挖动1.自我介绍2.国际化怎么做的思路:讲字典树,语言权重头从这个问题开始,一直深挖Q1如何细分到页面?如何细分到组件?A1多级字典树,字典树分片,按需加载Q2团队开发如何处理字典?A2开发人员编写,或者使用正则判断提取需要翻译的内容,上判断内容伪代码Q3如果开发人员无法国际化,如何实现?A3浏览器插件思路,简单讲一下如何写插件,如何实现,然后插件如何内嵌到项目中Q4如何做一个通用的国际化工具A4根据A3思路深挖,最后挖的我也没说明白,面试官也没懂,然后面试官到此结束,换个问题3.你的项目有后台数据统计Q1如何埋点,热点问题如何上报A1如实回答Q2如果项目是hash路由和history路由混用,如何区分A2修改每个监听器单独处理Q3锚点问题如何解决A3忘了,面试官给了个思路,但是不靠谱,没反驳,也没记住Q4如何做通用的埋点思路A4以路由为主线深挖最后面试官给了我个监听DOM和BOM的方案,方案可行,但不符合面试官提到的通用型,当场反问,最后面试官觉得他的描述不准确,按描述讲我的方案更合理。这道题之后,就不再深挖技术了4.讲下http回答:定义,各个版本区别,http3,TCP,多路复用,头部压缩等等一系列细节追问,直到我和面试官都不会5.定长和不定长的http数据怎么传输的思路:content-length, transform encoding,keep alive原理,面试官听完挺满意6.http帧结构,具体讲思路:那图背的滚瓜烂熟了,全讲了7.CSRF攻击,SYN泛洪思路:基础八股,尽量展开吧8.你提到的csrf token如何优化思路:类jwt编码,无状态处理,减少服务器存储面试官给最优解:body和header都放token(这道题确实面试官厉害,是自己的盲区)剩下的都是项目和实习相关9.手撕:一道01背包题,非leetcode原题,美团自己编的10.反问:个人表现,ssp还有hc吗(我觉得答的非常好才会问这个问题),多久出结果,最后请求加快流程推进9.20 意向本来是说有加面,但最后不知道什么情况,直接发了意向,具体原因我也不清楚,希望别给我白菜 #面经#