阿里 CBU 前端 1 - 4 面 + hr 面面经
呼...第二个阿里面的部门,总的来说体验挺好的。
(第一个是钉钉,没准备就面了,直接凉凉)
提前批 一面 某个晚上 8:30 90min
投了简历后的大概两三天后,某个晚上 8:30 就收到了一面的电话。
由于时间的久远,具体的问题记不太清了 😂 主要问到了以下这些方面吧。
项目部分
这里问的还算比较细,深入了一个点。这里面试官看到我简历写了自己实现了一个数据流的优化方案和用到了 Dva 就深入的问了这两个。
项目的细节 why how
数据流优化方案
Dva 的原理、设计思想
Dva 解决的问题
ES6 部分
继承的方式
没种继承方式的优缺点
介绍下 Object.assign() 和坑点
介绍下深浅拷贝
深浅拷贝的实现
generator、Promise、async/await (这部分展开问了很多细节)
Promise 异常捕获
Promise 中断链式
await 可以单独使用吗
请求(fetch、axios)
(还有一些细节都是展开来聊的,年代太久远了不记得了 🤦♂️)
计网 + React + 其他
这里就是常规的面试题了...具体是啥真不记得了 😂
输入 url 到出现页面
React 生命周期
Fiber
TypeScript 的使用,一些场景怎么设计。
等等等等
CSS 部分
哭了 这块问了很多我觉得比较冷门的东西吧
介绍下 flex
flex 的属性 (给了个实际的需求用 flex 实现)
flex 的主轴方向怎么定义
flex 的排列顺序受到 location 的影响吗(面试官的意思是地方...就是真的地域的地方...这里我感觉应该是想拓展到 RTL?)
flex 在移动端的表现 是否会受到屏幕颠倒而转变(黑人问号)
还有很多冷门的 😂
软件工程部分
面试官看了眼我的专业 哟 软件工程的 那就问问软件工程的问题吧...然后就开始了漫长的软件工程之旅 😢
说下项目内是怎么从 0 到 1 实现一个项目,具体的流程
需求分析、审批阶段
开发阶段
测试阶段
验收阶段
交付阶段
(大概说了这个几个 😂,都是从项目实际出发去聊)
然后还聊了下 项目内人员的分工 负责的职责啥的
我记得一面就问了这些吧 😂,面试官看时间也挺晚了,然后就说后续会补一个笔试啥的,会在这两天内发。
提前批 一面 笔试 2.29 2:00 - 4:00
一面后的三天内,面试官打电话来约了个笔试时间。
笔试是邮件发题目,规定时间内做完然后发回去。
一共是三道题 需要自行设计测试用例
笔试题一
给定不同面额的硬币 coins 和一个总金额 amount
编写一个函数来计算可以凑成总金额所需的最少的硬币个数
🥬🐔 的答案
虽然这类题目做了 n 次,但算法一直是弱项 哎...
function coinChange(coins, amount){
let ans = new Array(amount + 1).fill(Infinity);
ans[0] = 0;
for (let i = 1; i <= amount; i++) {
for (let coin of coins ) {
if (i >= coin) {
ans[i] = Math.min(ans[i], ans[i - coin] + 1);
}
}
}
return ans[amount] === Infinity ? -1 : ans[amount];
}
// 测试
coinChange([1, 2, 5], 11); //3
coinChange([2, 4], -1) // -1
c