快手前端面试经验

第一次面试大厂,没有经验,虽然面前看了两天的面经,但是还是败给了当初被我抛弃的算法(大一下退出算法跑去开发)

一面(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更

没想到这么多人看,总结了快手的凉经,知识点还是掌握的不全面,不过内容确实真多啊,多多加强练习掌握原理,刚面完百度回来复盘,感觉也不是特别的难,就是多注意一些细节,加油!

#我的求职思考#
全部评论
多背点八股吧,这快排再检查下吧,加油
2 回复
分享
发布于 2023-06-13 14:58 浙江

相关推荐

11 42 评论
分享
牛客网
牛客企业服务