阿里p6前端面试经历,顺利拿到offer,程序人生

此处就省略了,一般自我介绍的时间感觉不宜过长,简单说下就好~

  1. 从浅到深咨询一个项目

因为我在目前公司涉及小程序比较早,并且那个时候还没有比较成熟的线上监控方案,所以我们自己搞了一个线上错误监控系统,然后我就拿这个项目来说了,面试官会仔细的从设计思路,运行原理等等方面开始问,一直问到后端数据慢查询怎么解决,这个问题的时间大概占了面试时间的一半还多,然后得到的经验就是大家一定要自己实际去设计和实现一些项目,不能停留在眼高手低只看不落实的层面,如果这个项目不是我带头发起和亲身实现了里面的一些流程可能很容易就卡壳了,在做的过程中遇到的问题都是很宝贵的经验,当然也是成长的一部分~

  1. 简单介绍前端模块化,amd,cmd,commonjs es6的module

很尴尬,因为我们目前公司都是直接用esm,再加上自己确实没在前端项目中用过amd 和 cmd项目的类库,然后再加上异常的紧张(一面的时候紧张到说话都喘气,哈哈),然后只聊到一个是同步加载,一个是异步加载,没说出来一个是前置依赖,一个是就近依赖,面试官也很耐斯,听到我有点紧张也没继续问了,说了一句安慰我的话-现在已经不怎么用了~,哈哈哈

  1. commonjs 和 es6的module哪个支持异步

紧接着问了这个问题,emmm… 当时差点没缓过来,冷静分析了一波,然后想到我们最近的项目中在做react组件的异步加载,想到了es10版本添加了异步import()方式去载入一个模块,所以答案毫无疑问是esm目前支持异步,其实返回来想想,如果用排除法这个也很简单,因为commonjs规范主要是给node层用的,node层对于module的加载无非就是文件的读写,所以它根本没有必要去支持异步加载,读写io本身就很快~

  1. async await 和 promise 的关系

这个问题是当初我第一次面试阿里的时候回答的不好的一个问题,所以面试官专门提出来问了我一下,当然现在看这个问题就比较简单了,async await 是 promise 和 generator 函数组合的一个语法糖,这个没啥好说的~

  1. 口述代码,实现promise.all的poliffy

可能还是担心我这块不是很熟悉,所以又问了一个相关的问题,这个比较简单,我直接写代码,当时是口述的,思路是一样的;

Promise.myAll = function(…args){

const result = [];

let isFail = false;

let errInfo;

let j = args.length;

for (let i = 0; i < args.length; i++){

// 如果有错误就停止循环

if(isFail) {

return Promise.reject(errInfo);

};

// 挨个运行promise

args[i].then(res => {

// 处理结果

result.push(res);

j–;

if(j === 0){

return Promise.resolve(result);

}

}).catch(err => {

// 设置停止循环的标志,存储错误信息

isFail = true;

errInfo = err;

})

}

}

// 以上都是未经运行未经测试的伪代码,可能有问题,大致思路就这样~

  1. flex布局,固定高度,左边定宽,右边自适应?

这个比较简单,flex布局给父元素设置display:flex,左边的子元素flex:none,给个width:100px,右边的子元素flex:1就可以了,当然可能有别的方式,这个应该是最简单的~

  1. 如果子元素不能100%继承高度,怎么实现撑满?

这个问题我当时没反应过来面试官的意思,我问了一下是不是要纵轴方向的flex布局?后来面试官说 嗯。。也可以,这个过了。我就愣了,回来之后想了一下,不知道是不是说如果子元素无法100%的继承高度,那是不是可以结合定位的方式,比如父元素relative,子元素absolute,然后四个位置都是0?不知道是不是这个意思无法考究了

  1. 对ts的理解

ts 用的不是很多,因为我们的项目大部分都是基于h5的,首先逻辑不是很复杂,因为每个part最多就三四个页面而且跟别的part基本没关系,业务决定并不是很适合ts,所以也没在团队中怎么推广,但是有在后台项目,就是管理端用了ts,所以简单说了一下ts和js的优缺点~

  1. ts的泛型是什么作用

一下没反应过来怎么回答,因为本身ts用的不多,泛型用的更不多,但是后来我想了一下java中的泛型,再加上面试管的提示,我给的答案是泛型决定了一个类型在不同的场景下能够在每个场景下从始至终的保持类型一致,有点拗口,但是应该就是这么个意思~

  1. 假如监控系统别的组需要用,并且没满足他们的需求,你会怎么处理

瞬间没反应过来面试官想问啥,因此说了一大堆,比如说要看自己的团队是否有时间,要看这个需求是否合理,要看这个需求是一个定制化的需求还是一个比较通用的需求,等等各种情况下怎么处理都给了自己的方案,然后面试官打断我说我问的不是这个意思,是问你是你来做还是别的组来做?我说还是得分情况看事情和时间的安排,然后就过去了~

基本到这里一面就结束了,emmm,刚挂了电话,正好面试的部门有一个之前从扇贝离职去了的同事,面的还是很巧的同一个部门,大哥就跟我说恭喜一面过了。。哈哈,2面开始就没那么紧张了

二面

隔了好像就两天2面就来了,2面因为是晚上8点多才开始的,所以面试官本来说准备聊半个小时,结果还是聊多了

  1. 设计一个通过拖拽,然后交换位置的组件,给思路就可以。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

最后

小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:

凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。

入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。

整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

作者非常细心地将常见核心算法题和汇总题拆分为4个章节。**

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>