有赞前端一面、二面、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));

2. 计算时区

// 将一天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. 还有一些什么比较擅长但是我没问到的?(结合个人经历和公司部门业务说了一下,没想到救了我的二面)

三面

1. 哪里人,意向城市

2. 聊聊项目

3. 闲聊
#有赞##面经##秋招##前端工程师#
全部评论
感觉你js基础和框架问的挺多,我这边一直问计算机基础,实习,再就是手撕代码😂和职业规划
2 回复 分享
发布于 2019-08-24 20:58
请问视频面试编程题是在线编程,还是手写拿给他看?
1 回复 分享
发布于 2019-09-20 12:26
function format(start, end) {     let endHour = (end / 2).toFixed(1);     let startHour = (start / 2).toFixed(1);     let reg = /(\d+)\.(\d+)/;     const endRes = endHour.match(reg);     const startRes = startHour.match(reg);     return (         addZero(startRes[1]) +         ':' +         addZero(startRes[2]) +         '~' +         addZero(endRes[1]) +         ':' +         addZero(endRes[2])     ); } function addZero(num) {     num = num === '5' ? '30' : num;     return num.length > 1 ? num : '0' + num; } function timeBitmapToRanges(timeBitmap) {     let timeArr = timeBitmap.split('').map(v => +v);     const res = [];     let range = {};     let start = 0;     for (let i = 0; i <= timeArr.length; i++) {         if (timeArr[i]) {             start++;         }         if (!timeArr[i] && timeArr[i - 1]) {             range[i] = start;             start = 0;         }     }     for (let j in range) {         res.push(format(parseInt(j - range[j]), parseInt(j)));     }     return res; } console.log(     timeBitmapToRanges('110010000000000000001110000000000000000000000111') ); // [ '00:00~01:00', '02:00~02:30', '10:00~11:30', '22:30~24:00' ]
点赞 回复 分享
发布于 2019-08-26 11:38
第十六个 dns解析算法是啥啊
点赞 回复 分享
发布于 2019-08-25 22:12
第五题是content为100其他都为0嘛
点赞 回复 分享
发布于 2019-08-25 13:45
现场面还是电话面的?
点赞 回复 分享
发布于 2019-08-25 00:42
请问第二题怎么做呢
点赞 回复 分享
发布于 2019-08-25 00:33

相关推荐

评论
8
64
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务