# 阿里云一面:
3月10号晚
- HTTPS 的握手过程讲一讲。(讲了很久很细,面试官知道我理解,喊停了)
- HTTPS 和 HTTP 的缓存有什么区别?(懵了)
- DOM API 掌握怎么样? (不是很熟)
- Element 和 Node 的区别(假装想了一会,不知道)
- XSS 攻击 Cookie相关的字段(HttpOnly, 解释了一下作用)
- CSRF 攻击,解释一下 Cookie 的 SameSite 字段 (说了下,觉得可以,过)
- chrome 最新的 xxx 特性是如何防范 CSRF 攻击 (这个真没听说过)
- fetch 和 xhr 有什么区别?(fetch 不熟)
- 好,解释一下 xhr 的 cors 过程(简单请求,非简单请求两种情况,说了下)
- React 闭包陷阱有什么好的解决办法吗?(说实话,简历上写了,实际上理解不深,只说了一种)
- useReducer 可以解决你知道吗? (当时真的不清楚,主要忘了闭包陷阱的表单场景,尴尬)
- 看了你的小册子,能不能讲讲React.memo 和 JS 的 memorize 函数的区别(memorize函数当时不知道,以为是什么高深的算法,后来才发现就是cache函数,换了个名字而已。反正当时说不会)
- 特意考了一题对React.memo的理解(擦,还是考React.memo, 三个场景,中间一个场景答错了,非常减分。这道题出的还是很有水平)
- WeakMap 和 Map 的性能有什么差别?(前者对 GC 更加友好,保持弱引用)
- 如果是在立即执行函数中,两者的性能有区别吗?(楞了一会,说强弱引用还是会有GC的区别,没影响)
- 换个说法吧,如果这个立即执行函数中有递归函数,两者性能有区别吗?(没 GET 到面试官的点啊,过了吧这题)
- 如果是在立即执行函数中,两者的性能有区别吗?(楞了一会,说强弱引用还是会有GC的区别,没影响)
- 能不能说说 AMD 和 ESModule 有什么区别?(AMD 不熟,说ESModule,介绍了import、export以及导出引用的特点)
- 那么你能不能告诉我 ESModule 对于 Tree-Shaking 有什么优势呢?(会做一些编译阶段的优化吧)
- async await 经过编译后和 generator 有啥联系?(问了两遍,还是不知道问的啥,直接说了async await 原理,他说你讲了太深,问的不是这个,过吧过吧)
- 有什么想要问我吗?
反问的问题:
- React 闭包陷阱如何用 useReducer 解决? (面试官又说了一遍)
- 能不能说一说您正在做的业务中,遇到什么挑战,有什么解决思路?(说了很多,看的出来,阿里的大神都是特别有想法、有创意,最后也给我指引了一些未来的方向, 比如前端未来的容器化,对于中台页面的构建进行服务级别的调用,而不是去一个个组件去写,了解一下后端的安全容器概念,另外推荐我去看一看蚂蚁金服的微前端框架的实现。深深的佩服,开了眼界,收获很大!)
总结:
- 遇到一个自己没见过的名词,不要马上说不会,先试探这是个什么东西,可能自己以前碰到过,比如那个memorize函数,这个理解了也不会栽到坑里。
- 不会的基础知识点内容直接不会,不要装懂了,浪费时间。
- 没思路的地方,寻求提示,方便日后复盘,更重要的是可以增加临时反应的机会。
另外,一面并没有发挥我的优势,问的问题跟我不太match,甚至有些问题都没有听懂,虽然看的出来面试官比较欣赏我,但个人觉得情况很不乐观。挂了也就挂了吧,我觉得挂了也正常。
后续: 3 月 11 号下午内推我的大佬来信,了解到昨天面我的是团队中公认技术最牛的专家,面试官给的评价是,虽然有一些问题,但是整体表现不错,在应届生里面已经可以了。好好等下轮。
# 阿里云二面(37min)
3.19 晚 (ps:等的太久了,都没紧张的感觉了) 二面主管问我先面试还是先笔试,因为有两个流程。我说先面试吧。
- 首先自我介绍
- 为什么要做你这个开源项目?后台数据哪来的?
- 有 nodejs 相关的开发经验吗?(果断说没有,避免给后面挖坑)
- HTTP 的 GET 和 POST 请求有什么区别?(我说了 4 个区别)
- 说一说 CSRF 和 XSS 攻击?(说了一堆,他说你讲的太细了,是不是最近看过之类的文章,我说没有)
- HTTP 缓存能不能说一下?(强缓存,协商缓存,中间扯到代理了,讲了一堆,他说可以了)
- 你知道 JS 的语言标准是如何制定的吗?(确实不熟,说下去自己查查)
- 你用过哪些 ES 最新的语法,越新越好
- 你对 babel 了解吗?能不能说说几个 stage 代表什么意思?
- Vue 的响应式对数组是如何处理的?(重写数组方法,手动派发更新)
- Object 为什么可以自动派发更新?
- 假如我在一个for循环中改变当前组件依赖的数据,改变一万次,会有什么效果?(讲到批量更新和 nextTick 原理,他表示可以)
- 假如让你设计一个适配 PC、手机和平板的项目,你有哪些布局方案?(首先是vh、vw,然后用淘宝出品的 lib-flexible 库进行 rem 适配,还有一种 flex + px 的适配方式)
- CSS 当中以 @ 开头的属性有哪些?(我说了@media, @keyframes,后来提醒我还有@import,我补充这个是串行加载 CSS)
- 了解过前端当前的发展趋势吗,比如一些新的技术方向。(说了对PWA的看法,为什么会凉,flutter、electron、微前端,serverless)
- 了解过云计算吗?能不能讲一讲云计算的发展方向和前景?
- 有什么兴趣爱好?
- 对自己的职业规划是怎样的?(说了一大堆,他笑了笑,说今天就到这里吧,明天笔试)
第二天主管告诉我不需要笔试了,笔试取消。
# 阿里云三面(57min)
3.20 下午两点
聊了狠多,但是聊的很轻松,没有编程题,而且和个人经历强相关,就不整理题目了。
# 阿里云四面(40min)
3.24 让人自闭的一场交叉面。
- 自我介绍
- 为什么选择前端?
- 你的职业规划是怎样的?
- 项目中遇到了哪些挑战?
- 说说你对前端架构的认识,如何设计出一个架构方案
- 在一个大型项目中,JS 如何定位发生内存泄露的代码?
- Last-Modified 和 Etag 有什么区别?
- Cache-Control 和 Last-Modified 的区别
- 后端语言对 nodejs 更熟还是 Java 更熟?(Java)
- 说说 String, StringBuilder 和 StringBuffer 的区别
- 跨域有哪些方案?
- React 受控组件和非受控组件的区别
# 阿里云终面(50min)
3.26
- 自我介绍
- 你自己在社区做过什么具有推动性的事情?
- 你能不能说说自己比较擅长的数据结构有哪些?
- 在学校参加过竞赛吗?
- 你希望公司的环境是怎么样的?
- 为什么不投腾讯?
- 阿里云和抖音你更想去哪里?
- 你还有什么问题?