阿里巴巴 真实面经
来源:17-2 社群资源-面试预约

Sunday
2023-07-06
6回答
-
Sunday
提问者
2023-07-06
xxx 面试记录(盒马校招):2022-03-06
阿里巴巴的盒马部门,是我面过的场次最多,单次平均面试时间最长的一家部门了,整个流程持续了差不多1个多月,技术面试差不多有5-6轮。对校招的实习生的选拔好严格
一面:技术面
前一天晚上投的简历,第二天下午就接到了面试电话
请先做个自我介绍 场景题:提交表单,常用的方法有哪些?应用层,通信层发生了哪些过程? post和get的区别,列举一下 http常见的响应码,拒绝服务资源是哪个(403) 说一说这个系统是如何判断机制的(前端鉴权) 你刚才说了三方OAuth,讲一讲内在原理吧 说说https的内在原理,ssl握手过程 为什么要用非对称密钥,pms呢?公钥怎么了? 说一说响应式布局吧? 响应式背后的浏览器原理你知道吗?(不太知道) 旋转动画css,怎么去做?(animation+rotate) dom树和cssom树原理也说一下吧 为什么link要在前,script标签要在后面呢?原理 场景题:保证浏览器不受脚本的恶意攻击,(xss攻击,解决方法) 假如说你的富文本编辑器内部要显示脚本,该怎么办呢?(不太清楚,我就尽可能说) 场景题:promise.resolve.then和setTimeout(有关事件循环event loop) 说说async和await的es5实现(我尽可能地说了一点) 场景题:这里有cat和animal子类和父类,如何进行es5继承,至少说出5种。 说说你项目做的Vue spa首屏优化吧(按需引入,懒加载路由,gzip压缩,关闭一些插件...) 说说webpack打包构建在实际项目中的优化 算法场景题:数型系统,包含字符串关键词,如何对其作出效率很好的搜索?(balabala说了自己的一些看法,lz77算法,后来翻了翻算法书,应该结合B树来说)
一面:追加面
编程题:请使用js函数写出markdown转html的文本编辑器。(2个小时) 算法题:在一个字符串中,找到最大不连续子字符串的长度。 一面评级很好,面试官balabala...(给予我建议)
二面:技术面
请做个自我介绍,学校里做的项目 说说你element-ui的按需引入吧 说说webpack打包优化具体干了什么?为什么要这么做呢?(Dllplugin,happypack) prerender-spa-plugin插件你用过?具体说一说吧 SEO优化你做了?具体讲一讲吧 追问:你seo排名怎么样了?(没有进展😂) 我记得NUXT.js也可以做渲染和seo吧?了解SSR吗 小程序有碰到过复杂一点的业务场景吗?(说了数据列表懒加载处理setData优化问题) 小程序的框架你有了解吗?要不说说几个? 你了解过的前沿技术来说一说?(Vue3.0,Flutter,Serverless,Typescript) 说说Vue3.0和2.x的双向数据绑定(object.definePorperty和Proxy) 说说你最感兴趣的前端方向(跨端解决方案Flutter、React Native...) 一面面试官说你还可以,那我就不再问你基础问题了,你还有什么要问我的吗?
三面:技术面
之前就有跟盒马的前端leader做过微信沟通,了解了一些阿里巴巴新零售的愿景。
先做个自我介绍 说说你的个人博客和你做的小程序吧 你刚才只说了技术层面的,功能层面没有什么创新吗? 你现在还有开展什么新项目吗? 我不管技术层面,还是来到功能层面,除了这一个功能就没有创新了吗?(顿时语塞。。) 有这么一个功能场景,老师随机点名,上堂课没来的同学被抽到的概率会大幅增加,怎么去做? 还有一个功能场景,你的博客系统如何分享文章? 还有一个功能场景,你可不可以做一个在线提交作业的平台,让老师不仅可以收到作业,还可以在平台上对作业进行批改?说说具体技术实现。。。 我的问题问完了,你现在还有面其他的部门吗?balabala 对我的评价,balabala说了很多很多😭,其中用技术灵活地解决各种场景问题是非常要紧的素质!!!
说后面还会有P9级别的面试/(ㄒoㄒ)/~~
四面:技术终面
正式校招系统开放,选择了盒马的邀请。四面在3月23号的下午打电话过来了,听口音像是个北方人。看到我的简历,抛出问题:
请先做个自我介绍吧,并说说你最有成就感的几个项目 详细地讲讲Vue的首屏优化,具体的技术点 优化有过量化评级吗?说说具体为多少?怎么去做的? 有一个问题,你如何去确定哪一种方式是对整个首屏渲染优化起到最关键作用的? 我们现在回过头来,你可不可以按照软件开发的流程模块再来详细地说说博客的整体优化?各个方面的性能优化?(设计,编码,打包部署,上线体验。。。说了一部分) 预渲染prerender-spa-plugin能详细讲讲? 你了解了原理,那么你引入这个prerender插件对于整个项目的架构产生了什么样的特别影响?(讲了路由冲突) 对于上线后的用户体验,你打算怎么做改进? 功能层面是这样,技术层面可以来说说? 数据列表的懒加载这个说的好,那有这么一个场景,你提交了新的文章,由用户在刷你的博客,你怎么让用户通过一定的事件=来查看你的新文章,不要通过页面整体刷新,还是以动态引入的方式? 我们再次回到刚才项目的性能优化这个点上?在你解决首屏的时候,在网络通信的每个阶段,哪个阶段是性能开销的最大的地方,优化后有何变化?如何解决? SEO怎么做的,讲一讲技术细节 你有对你的用户群体做过数据的量化统计吗?说说你有什么样的思路,如何去利用好这些数据? 这边有个问题,如果单纯地通过前端来分析用户的行为,开销会非常大,你有什么好办法?说说思路 如果过了很长时间,有人问你,一个高性能的博客页面该如何搭建,你会按照什么样的逻辑取来跟他分析这些零碎繁杂的性能优化? 好了,博客项目只是你个人对于技术的探索,你还有没有学校里真正拥有用户的实际项目呢?说说看 功能描述的很详细,这里有个问题,总所周知,二维码有一定的时效性,可传播性,如何防范那些没来同学也扫到二维码了?说说方法 没来的学生,你们就会采取这种单一的方案吗?还有没有别的? 说说你们项目组的团队,如何分工的? 在这个团队对于项目的功能构建中,你起到了什么作用呢? 你刚才说到了前后端分离,讲讲你和后台同学如何落实好前后端分离的? 对于后台的数据接口,经常会发生一些分歧,你们团队是怎么化解这种分歧的,有没有一种方式增进团队之间的沟通? 这小程序现在的用户量怎么样呢?日活又如何? 同样的,再说说这个小程序性能优化做了哪些呢? 你对于前端未来的开发?以及你以后的职业规划? 你希望阿里能给到你什么样的经历?在阿里希望能学到什么? 这边在杭州,之后方便过来对吧? 我的问题问完了,你这边有什么问题? 惯例您对于我的评价:ok,在应届生群体中,你已经具备了工程师的素养和一定开发经验,但性能优化这一块是一个永无止境的过程,应当不断追求卓越balabala。。。。。
面下来差不多一个小时,真的少见。。。
五面:P9 交叉面
约在了3月25日的晚上,面试官比较严肃,问的问题也蛮有深度的,时间不长30分钟,但问的问题也比较广。。。
请先做个自我介绍 说说你最有成就感的项目 你的博客网站,难道没有分析过用户的行为吗?对于用户量很大的情况下,难道没有做过性能分析吗? 详细地讲一讲你做了哪些性能优化? 就这么多吗?对于效果你有做过量化的评测吗? 对于首屏中的FP,FCP,FMP,TTI你又分别去做量化的考虑吗? 对了,你如何通过代码来分析首屏的FCP时间? 除了这些,难道就没有进一步优化吗? prerender预渲染是什么原理呀? 这样的一种插件引入,为整个性能提升又带来了多少量化的参考呢?你有去研究过吗? 说说你拥有的实际用户量的项目吧? 这个小程序已经上线对吧?你们团队有没有对这个小程序做过用户行为的调研呢? 我想要知道的是在程序里面有代码去自动去分析用户的行为吗? 我看你懂Vue,React有学过一些吗?系统地说一说两者的区别 Vue如何解析template模板,diff算法两者的不同是什么?? 详细地说说前端的动画种类? canvas有了解过吗?它适用于什么样的场景? 你对于前端前沿技术的看法? 你刚刚讲了flutter,Dart语言能不能说说看? React Native做过项目吗? 你希望在未来,你在阿里能学习成长到什么? 我的问题问完了,你这边有什么问题呢?
对我的评价:评价我先不给你,我说输送我对于你的建议,继续探索下去,保持好奇心,用最前沿的技术尝试去做项目,前端的知识很广,需要去不断深入了解原理知识balabala。。。。(最后)我觉得你还是不错的,加油吧。。。。
后来,leader发了微信,交叉面顺利过了,剩下的就是HR了。
00 -
Sunday
提问者
2023-07-06
xxx 面试记录(蚂蚁金服):2022-11-23
三次技术面试 + 一次 HR 面 蚂蚁金服的面试流程和其他公司有所不同,它的每一轮面试都是面试官单独加你微信,再和你约面试时间的。
面试前笔试
在正式开始一面之前,一面面试官给我发了两道笔试题,让我这规定时间内完成后发给他,题目是:
请实现 find 函数,使下列的代码调用正确。
// 约定:
// title数据类型为String
// userId为主键,数据类型为Number
var data = [
{ userId: 8, title: 'title1' },
{ userId: 11, title: 'other' },
{ userId: 15, title: null },
{ userId: 19, title: 'title2' }
]
var find = function (origin) {
// your code are here...
}
// 查找 data 中,符合条件的数据,并进行排序
var result = find(data)
.where({
title: /\d$/
})
.orderBy('userId', 'desc')
console.log(result) // [{ userId: 19, title: 'title2'}, { userId: 8, title: 'title1' }];使用 React 或 Vue 技术栈实现一个流水线组件:
interface Pipeline {
stages: Stage[];
}
interface Stage {
title: string;
jobs: Job[];
}
interface Job {
name: string;
status: 'success' | 'fail';
time: number; //毫秒时间戳
}一面:技术面
介绍一下你自己,以及项目,简单说一下你做了什么,有什么难点及亮点; js 有哪些基本类型,说说 typeof 与 instanceof; 说说 new 操作符; 什么是 event loop; Promise 的用法?了解 allSettled 方法么,怎么实现? 说说闭包; ES5 实现继承的方法; 说说跨域; commonJS 与 ES6 模块化区别; webpack 了解么?loader、plugin 分别是干嘛的?如何实现一个 loader? webpack 如何优化打包速度; 说一下 css 盒模型,border-box 和 content-box 区别; 说说 BFC; 移动端响应式布局怎么实现的; 说一说 flex 布局,有了解 Grid 么; 有兼容 retina 屏幕的经历吗?如何在移动端实现 1 px 的线; 说一下 react 组件的生命周期; react 组件如何做性能优化,说说 pureComponent; 调用 setState 之后发生了什么; 了解 fiber 么?解决了什么问题?具体原理是; 有用过 hooks 么?怎么看待 hooks?它的原理是; 了解过 react 最新的一些动态么?time slice 、suspense、server component 能说说么; 了解最近一些新技术么,webpack5 做了哪些新突破; 为什么 vite、snowpack 可以比 webpack 快那么多?具体原理是; 什么是 CSRF 攻击,怎么预防; 为什么说用 css 实现动画比 js 动画性能好; 什么是 合成层; http2 与 http1.1 区别; 说一说 http 缓存; http 状态码;
二面:技术面
自我介绍,介绍项目,问项目中的一些问题; 19 年毕业的,学校的知识没忘吧.. 计算机网络、编程语言、设计模式、数据结构算法、编译原理你对哪个比较熟悉?😨(我答得是计算机网络) 路由器和交换机的区别;😨 实现斐波纳切数,递归和非递归的时间复杂度分别是多少; ...还有其他一些基础问题,没记住:)
三面:技术面
这一面没有问前端基础相关的问题,问了我项目中的一些技术细节,方案设计上的问题。老师的问题真的很有水平,直切要害,都是项目推进过程中遇到的坎。还问了一些后续规划的问题。
四面:HR面
之前看很多人说阿里 HR 面比较难,而且会刷人。但就我的经历来看,就是一些比较常规的问题,如:
为什么选择跳槽; 如何应对工作上的压力; 今后的职业规划是; 说说 优缺点; 希望阿里给你什么; ...
这些问题可以先想想,然后如实回答即可~
00 -
Sunday
提问者
2023-07-06
xxx 面试记录(蚂蚁):2023-01-10
面试总共分为三轮。前两轮为技术面,第三为 HR 面。
一面
常规题:
let val const区别 箭头函数 为什么js是单线程? es6解构语法 事件循环输出题 chrome V8相关:Ignition+ TurboFan,隐藏类和内联缓存,Deoptimization,内部优化手段和开发者可优化的空间 http/s udp原理 axios为什么设计成洋葱模型 扫码登录原理 jwt,Token React设计好的点在哪? 为什么有Redux,对比Redux中间件之间的方案,哪一种设计好,为何 Redux-thunk内部是怎么和中间件关联的? ts类型 ts中const和readonly的区别 ts装饰器 学过 node 吗? express用的多吗?koa,egg都有哪些进步
算法题:
手写:防抖和节流 手写:树形结构转换题 手写:发布订阅+观察者,说出区别 算法:最短回文串 算法: 两个自然数组成的数组num1,num2,选出若干个数字组合成一个数,要求取出的数字顺序保持一致,求满足该条件的最小数,返回一个表示该最小数的长度为 k 的数组。
项目考核与职业规划:
项目难点 描述实习中手写的 diff 算法 怎么设计一款产品,从0到1 未来的规划 自己的优缺点
二面
全程项目+算法/手写题,没有八股文
手写算法
计算数组中,最大连续增长子序列的长度,如:[1,2,3,4,1,2,3,4,5,1,2,3] 结果为5 手写flat 口撕:动态表达式 算法:滑动窗口最大值 算法:使用滑动窗口的思想解决“找到至多包含两个不同字符的最长子串”
三面(HR)
介绍在之前公司的产出 最优成就感的项目是什么 介绍一些数据结构 实现通用的批量更新策略 安全相关 waf
00 -
Sunday
提问者
2023-07-06
xxx 面试记录(媒体通讯技术部):2023-03-19
先说总结,因为简历上的项目技术栈并不深,面试官问的也并不难,但是由于本人第一次面试过于紧张,感觉发挥的并不好。。所以大家面试还是要重视一下心态。问的遇到困难解决方法,学习方法之类聊的比较多,技术题目记不清了,记录几个影响深刻的
问了display:none visibility:hidden的区别 http,https的区别,https的具体内容 讲一下盒模型 聊项目时说到了跨域,问了一下跨域问题为什么会出现,怎么解决 promise的状态,然后写了一下那种console.log输出顺序的题 箭头函数和普通函数的区别 写一下防抖 js的设计模式 算法题,写了一个数字的反转 平时都是怎么学习前端的?当时就说了做项目,但是后来想想觉得说去b站,掘金,github之类的网站找资源面试官可能会更满意些,当时就是太紧张卡壳了。这里还发现一个问题就是我的项目虽然做了一年,但是前半年都是在做测试,后面才接触前端,这一点没有说清楚,就给了面试官我已经接触前端一年了的感觉。 遇到困难怎么解决?以后怎么防止再遇到这个困难?感觉也没答好,应该说写写博客记录之类的 问了一下在实习的职位上想要收获什么 最后反问环节问了怎么润色一下简历上的项目,面试官说可以在项目打包方面,框架特性做一下研究,还问了前端学习方向,说是可以多看看掘金等网站
00 -
Sunday
提问者
2023-07-06
xxx 面试记录(校招):2023-05-14
两次技术面试,一次 HR 面
一面:技术面
基本围绕项目展开,没有自我介绍 课程有哪些工程相关的东西 做了哪些工作 有哪些亮点 useref 不建议使用 函数式编程 immutable 有没有读过相关的书 反问 代码题
interface examScore {
// 学号
id: string;
// 课程代号
course: string;
// 成绩
score: number;
}
// 根据学生各科考试成绩,输出每个学生的总成绩。输出格式为:
// {{id: '1', total: 100 }, {id: '2', total: 101}}
const examScores = [
{
id: '1',
course: 'cs001',
socre: 90
},
{
id: '1',
course: 'cs002',
socre: 79
},
{
id: '2',
course: 'cs002',
socre: 57
},
{
id: '3',
course: 'cs001',
socre: 85
},
{
id: '2',
course: 'cs001',
socre: 74
}
]二面:技术面
面试官自我介绍 介绍一个你比较熟悉的项目 项目里比较困难的点 SWR的实现方案,聊了很久相关(为什么不能用它处理post请求?) redux相关,优缺点,其他替代方案(讲了useContent+useReducer) react hooks 结合实现逻辑说一下怎么用的,和class的区别,为什么不能用在条件语句里 扫码登录(移动端、pc端、服务端 流程) 前端安全问题(XSS,CSRF) 函数式编程,怎么用的 工作or读研 为什么选前端 反问
三面:HR 面
自我介绍 每个项目聊一聊个人贡献和难点 为什么会做那些项目,学到了什么 一些随便聊聊的问题
00 -
Sunday
提问者
2023-07-06
xxx 面试记录(校招):2023-05-23
base: 杭州 高桥云港园区
岗位: 前端
面试形式: 电话面试
Note: 校招职级 P4, 是继菜鸟之后第二个这一届校招开 P4 的业务线
自我介绍, 介绍实习项目 你最有成就感的实习内容 Tree Shaking原理, Tree Shaking 如何处理副作用模块 浏览器从发出请求到渲染页面经历了哪些过程 https 安全机制, https 有哪些策略防范中间人攻击 协商缓存的etag和last-modifed, 二者各自的适用场景 etag 是如何生成的? 做过 Node 后端吗, 讲讲一个 http 请求到了服务端, 可能会有哪些处理 数据库了解多少, 你如何实现一个数据库 什么是数据库的索引 面向对象, js 原型链继承, ES6 class 如何实现 http/2.0有哪些更新 数据可视化了解过吗, 如何画一个折线图 前端有哪些性能优化策略 Webpack 如何处理异步 import React 的fiber是什么 React 的调度机制, 如何打断并重启 fiber 的比较过程 Redux 原理, 使用 Redux 和直接在全局作用域定义一个数据对象有什么区别 什么是immutable 我看你简历上提到了你的项目并给出了项目的 github 链接, 你如何证明你这个 github 账号是你本人, 并且如何证明这些代码都是你自己写的? 算法题: 给定两个多边形, 如何判断两个多边形之间是否有交叉, 口述原理
00