有赞前端一面、二面、HR面
发面经,攒人品。。
一面
上来两道编程题。。
1. JS实现大数相加
const a = '123456789';
const b = '11111111111111111111111111';
function add(a, b) {
var temp = 0;
var res = ""
a = a.split("");
b = b.split("");
while (a.length || b.length || temp) {
temp += ~~(a.pop()) + ~~(b.pop());
res = (temp % 10) + res;
temp = temp > 9
}
return res
}
console.log(add(a, b)); // 将一天24小时按每半小划分成48段,我们用一个位图表示选中的时间区间, // 例如`110000000000000000000000000000000000000000000000`, // 表示第一个半小时和第二个半小时被选中了,其余时间段都没有被选中, // 也就是对应00:00~01:00这个时间区间。一个位图中可能有多个不连续的 // 时间区间被选中,例如`110010000000000000000000000000000000000000000000`, // 表示00:00-1:00和02:00-02:30这两个时间区间被选中了。 // 要求:写一个函数timeBitmapToRanges,将上述规则描述的时间位图转换成一个选中时间区间的数组。 // 示例输入:`"110010000000000000000000000000000000000000000000"` // 示例输出:`["00:00~01:00", "02:00~02:30"]`
3. CSS的权重,结合实例具体分析
4. 未知宽高的元素居中(准备了,但是没答好)
5. 盒子模型,如果设置width=100px,那么盒子中各个部分的宽度多少
6. 如果设置background-color: red,那么盒子模型各个部分的背景是什么情况?
7. CSS的position定位及区别(说到和文档流的关系)
8. HTTP和HTTPS的区别
9. 闭包
10. JS垃圾回收机制(这点面试官说JS的回收机制其实很多,我说到的只是其中的一个算法)
11. TCP和UDP的区别
12. 进程和线程的区别
13. 如果需要对数据进行插入和删除,什么数据结构最快
14. 如果还需要考虑数据的可索引性质,什么数据结构最好
15. 输入一个URL整个流程介绍
16. DNS解析时,有什么算法和方式减少重复操作
17. 平时怎么学习的
二面
1. 聊一下项目的亮点
2. 项目中选型的考虑
3. React和Vue的数据流向
4. React做SPA和使用Router的考虑
5. React router怎么实现的?(提到hash)
6. 箭头函数和一般function的异同
7. Promise.all()如何实现的?口述设计思路
8. call、apply、bind的区别
9. pure component介绍(类比纯函数介绍)
10. pure component和React生命周期函数shouldComponentUpdate的联系
11. React Hook有看过吗
12. Cookie(被我打个岔,打忘记了回答了)
13. XSS和CSRF的防范
14. 还有一些什么比较擅长但是我没问到的?(结合个人经历和公司部门业务说了一下,没想到救了我的二面)
2. 项目中选型的考虑
3. React和Vue的数据流向
4. React做SPA和使用Router的考虑
5. React router怎么实现的?(提到hash)
6. 箭头函数和一般function的异同
7. Promise.all()如何实现的?口述设计思路
8. call、apply、bind的区别
9. pure component介绍(类比纯函数介绍)
10. pure component和React生命周期函数shouldComponentUpdate的联系
11. React Hook有看过吗
12. Cookie(被我打个岔,打忘记了回答了)
13. XSS和CSRF的防范
14. 还有一些什么比较擅长但是我没问到的?(结合个人经历和公司部门业务说了一下,没想到救了我的二面)
三面
1. 哪里人,意向城市 2. 聊聊项目
3. 闲聊
#有赞##面经##秋招##前端工程师#