阿里前端二面(4.6)总时长60min
老样子上来先问问你一些个人问题热热身
1、你为什么学前端啊?
2、你的简历里有个项目,能稍微介绍一下你的项目吗?
3、然后就开始了我一个小时的折磨问题(先声明,问的真的很细,但确实对我的帮助很大)
- 看你用了Nodejs中的Koa框架,那你能说一下你对Koa框架的理解吗
-
Koa和express的区别
express内置了许多中间件可供使用,而koa没有。
express包含路由,视图渲染等特性,而koa只有http模块。
express的中间件模型为线型,而koa的中间件模型为U型,也可称为洋葱模型构造中间件。
express通过回调实现异步函数,在多个回调、多个中间件中写起来容易逻辑混乱。
-
你能说一下Koa的洋葱模型吗
Koa 中间件采用的是洋葱圈模型,每次执行下一个中间件传入两个参数:
- ctx :封装了request 和 response 的变量
- next :进入下一个要执行的中间件的函数
-
那你知道Promise吗,可以说一下Promise怎么解决回调地狱吗
- 链式操作减低了编码难度
- 代码可读性明显增强
-
那你能说一下Promise的运行机制吗(没看过源码,直接傻了,面试官让我用自己的理解说一下,最后我反问的时候跟我说没说到点儿上)
promise对象仅有三种状态
- pending(进行中)
- fulfilled(已成功)
-
rejected(已失败)
后来我才觉得会不会让我说的是Promise的冒泡运行机制,折磨
- 你项目中的文件上传你有什么好的方法吗
秒传:利用redis的set方法存放文件上传状态,其中key为文件上传的md5,value为是否上传完成的标志位,当标志位true为上传已经完成,此时如果有相同文件上传,则进入秒传逻辑。如果标志位为false,则说明还没上传完成,此时需要在调用set的方法,保存块号文件记录的路径,其中key为上传文件md5加一个固定前缀,value为块号文件记录路径
分片传输:将所要上传的文件,按照一定的大小,将整个文件分隔成多个Part来进行分别上传,上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文件。
断点续传:将需要上传的文件按照一定的分割规则,分割成相同大小的Part;初始化一个分片上传任务,返回本次分片上传唯一标识;按照一定的策略(串行或并行)发送各个分片数据块;发送完成后,服务端根据判断数据上传是否完整,如果完整,则进行数据块合成得到原始文件
- 跨域问题CORS
- 那你怎么解决黑客的攻击安全问题呢
- cookiesession的介绍
- JSONP了解过吗
- 中途问Promise的时候问我能不能js实现,我说了一下思路,说用setTimeout定时循环resolve,保证A任务处理B任务等待,然后问我为什么要用setTimeout,我想了想确实不用,太尴尬了。
问了问对我的建议
面试官说我会的面很广但是有的细节还得多看看书,有没有人能告诉我是不是G了
5、问了问后续的安排
说四月底之前应该都会给offer了,我比较晚,可能三面和HR面一起面,心慌慌
#面试复盘##面经##阿里巴巴#