回馈牛客:春招实习前端快手面经
感谢牛客给的平台,现已拿到快手offer
5.17拿到正式offer,由于这段时间比较忙,帖子发的有点晚了。
一面
10进制转16进制,最好用位运算
水平垂直居中
双栏布局,7:3,border 10px,中间交线加起来是10px
手写bind函数
事件模型,阻止冒泡
手写vue自定义事件,on,emit,参考js自定义事件
回文判断
二面
说说自己的项目
图片上传是怎么做的?能不能同时上传?
promise?
promise并行怎么实现?promise.all
手写promise.all
HR面
自我介绍
为什么喜欢前端
快手和抖音的区别
从技术角度看快手和抖音
你有什么问题要问我?
您觉得这家公司怎么样?
团队氛围什么样?
您在这里工作觉得开心吗?
公司有没有健身房?
(没有问待遇,能过活的情况下学到东西就好,HR当时在食堂,还给我转了下镜头哈哈)
快手面试官给我感觉是比较厉害的,问题都挺好,基本上都答上来;
二面官比较耐心,因为我没有看过promise.all源码,他很耐心的一点一点提示,最后还是基本写出来了
下面是我写的代码(不保证完全正确):
Promise.all = function(list){ return new Promise = (resolve,reject) => { let resList = [], count = 0; list.forEach((item,index)=>{ item.then(res => { resList[index] = res; if(++count == list.length){ resolve(resList); } },rej => { reject({ rej: rej, index: index}); }); }); } }