快手前端面试经验
第一次面试大厂,没有经验,虽然面前看了两天的面经,但是还是败给了当初被我抛弃的算法(大一下退出算法跑去开发)
一面(60min):
1.自我介绍
2.在平常开发中遇到过哪些问题?怎么解决的?
3.sso单点登录怎么实现的?
4.离职原因?
5.整个软件开发的流程是怎样的?
6.set和map的区别
7.object和map的区别
8.了解promise.all,promise.race吗
9.手撕promise.all
10.了解过哪些排序方法?
11.写一下你最熟悉的排序方法
12.讲一下从浏览器输入url,点击回车后发生了什么
13.TCP协议和UDP协议的区别
14.反问
好好好,看了三天的链表反转,队列、栈二叉树的公共祖先......唯独没看排序(虽然但是排序这么简单的问题我没写出来)
这次估计悬了整个一下两道代码题都没答完整,可能是内心有点紧张吧,回头想了下也不算很难的内容,感觉这次错过了真的太可惜了
把两道代码题在复盘一下吧:
const promiseAll = (promises) => { return new Promise((resolve,reject)=>{ if(!Array.isArray(promises)) throw new TypeError("参数不是数组"); let resArr = [] let index = 0 for(let i = 0;i<promises.length;i++){ Promise.resolve(promises[i]).then(res=>{ index++; resArr[i] = res; if(index === promises.length){ resolve(resArr); } }).catch(err=>{ reject(err); }) }
虽然但是就这么几行,居然没写出来(还是自己太菜了)
排序算法:
1.快速排序:
function quickSort (arr) { let start = 0,end = arr.length - 1 sort(arr,start,end); return arr; } function sort (arr,start,end) { if(start >= end){ return } let temp = arr[start],i=start,j=end; while (i !== j){ while (arr[j]>=temp && j > i){ j--; } while (arr[i]<=temp && j > i){ i++; } if(j > i){ let tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp } } arr[start] = arr[i]; arr[i] = temp; console.log(arr) sort(arr,start,i-1); sort(arr,i+1,end) }
还要好好刷题,刷题太少了
----------------------
6.16更
没想到这么多人看,总结了快手的凉经,知识点还是掌握的不全面,不过内容确实真多啊,多多加强练习掌握原理,刚面完百度回来复盘,感觉也不是特别的难,就是多注意一些细节,加油!
#我的求职思考#