快手前端二面(8.3 50min 已凉)
- 介绍项目难点
- 为什么后端进行大数据传输时候需要分页,会出现什么问题(答的不好)
- sessionstorage和locastoragel和cookie区别(八股)
1.手撕 Promise.allSettled(ts不熟练还是让用ts写了) 25min
- 开始拓展,有一个sleep函数,然后Promise.allSettled([
sleep(1000).then(()=>console.log(1000)),
sleep(100).then(()=>console.log(100)),
sleep(10).then(()=>console.log(10))
])输出什么?回答的是1000 100 10,这个应该是对的
- 面试官让看下自己写的代码执行结果是什么,最后经过引导发现是10 100 1000,所以问题出在promsie结束后,应该是通过数组去对应数据,而不是数组push进行,这样会导致输出顺序不对,所以应该改为res[i]={statue:'xx',res},输出才是1000 100 10
- 继续拓展,面试官询问如果不用count来计数,可以直接用结果数组res的长度来判断吗?刚开始回答的是可以,后来面试官说你确定?我突然意思到不对,但是脑子乱了不值得怎么解释,最后发现是数组定义的问题
低级错误不应该啊
2.手撕:.卖买股票最佳时间(lc的easy A)
拓展:面试官说添加一个冷静期,但是本题只是卖卖一次股票,我就询问是买卖两次股票的情况吧,结果面试官说你直接考虑最多N次的情况吧,面试后才发现是(mid+hard结合在一起出了,当时面试没反应过来,怪不得写的迷迷糊糊的)
总结:首先第一个手撕确实收获很多,不是简单的手撕完就结束,通过拓展发现自己之前更多是在表名上,原理性的知识有点薄弱,而且ts也不太熟练。第二个手撕也反应了刷题有点生疏了,经典题没有写好
update:2周后凉
#前端##快手##大厂##秋招#