这次面试也并非完全没有收获,除去开头的自我吹嘘和末尾的无效笔试,中间的八股文还是结结实实的硬知识,反问环节也确实了解了目前前端的情况。八股文过程中,涉及到了计算机网络(各代 HTTP 的区别、常见状态码、输入 URL 访问网站过程)、计算机组成原理、JS 语法(如何判断 NaN、各种空的比较、var 和 let 的区别)、requestAnimationFrame 的用处、new 的过程、call bind apply 的区别、如何用 getter setter 设置属性不可修改、深拷贝、script 标签中的 defer async 作用、闭包、箭头函数和普通函数的区别、Promise 原理、CSS 盒模型、选择器与伪类伪元素、原生 CSS 的 flex grid 布局概念、对 TailwindCSS 的理解、ES6 新特性。在反问的环节,在面试官滔滔不绝的一套说辞之后,大概了解到了阿里的前端本质是小全栈工程师,从前到后,从 UI 到优化,从直接维护数据库到人工智能算法优化广告推送,以及各个方面的东西,前端都会涉及,用面试官的原话说就是:“现在的前端,基本上要一套龙包圆了,只要是过程中涉及到的东西都得要知道。”这次面试还是让我知道了我专业知识方面的不足,主要是八股文没有背熟练,让面试官后期很显然对于我挺失望的,排除掉 KPI 面的情况,这次确实是我的问题。此外,简历上的其他项目我也应该更加熟悉,以方便面试官的深入提问,比如我写的 CppDB 是如何建立索引的——虽然这个项目我还没有写到索引这一步,但是既然写到了简历上,那么整套的包装还是应该做好的。