抖音前端校招一面1小时20分钟

20200831 抖音前端校招一面视频1小时20分钟
(我人傻了!!!!!!)

1.看你在重构一个项目,你讲讲你重构的心得?你如何保证你重构后的功能逻辑是完整的?你如何让以后来维护你重构的代码的人能清晰明了的知道你写了什么?

2.进程和线程的区别?同一进程不同线程的哪些数据段是共享的?

3.http响应header中的cache-control有哪些常规值?

4.http中get/post在请求参数上有什么区别?get参数的长度有限制吗?文件上传一般是post请求,那么在body里我们用什么类型的数据?

5.编程题:给定形如 www.toutiao.com 的 URL,将其转换成 com.toutiao.www 的形式,要求必须原地操作。(就只能在给定的string上进行操作,不能新建变量来缓存操作结果,不能用split、splice、slice等会新建一个缓存变量的东东。反正这里我一点头绪都没有。)

6.编程题:

Semantic Versioning 是一个前端通用的版本规范。
格式为“{MAJOR}.{MINOR}.{PATCH}-{alpha|beta|rc}.{number}”,
要求实现 compare(a, b) 方法,比较 a, b 两个版本大小,
当 a > b 是返回 1;
当 a = b 是返回 0;
当 a < b 是返回 -1;
其中,rc > beta > alpha,major > minor > patch;
例子,1.2.3 < 1.2.4 < 1.3.0-alpha.1 < 1.3.0-alpha.2 < 1.3.0-beta.1 < 1.3.0-rc.1 < 1.3.0

7.CSS的盒子模型简单介绍一下;padding和margin设置百分比是基于什么计算的?

8.布局题:CSS三栏布局实现,左右固宽200px,中间自适应, 高度相等。当top没有设置的时候,left和right元素的高度是基于什么去计算的?

9.this判断题,写出输出结果。

var length = 10;
function fn() {
 return this.length+1;
}
var obj = {
 length: 5,
 test1: function() {
  return fn();
 }
};
obj.test2=fn;
//下面代码输出是什么
console.log(obj.test1())
console.log(fn()===obj.test2())
10.DOM操作题
给一个元素Element,找出这个元素的全部Input子元素。
function findAllInputElement (element) {
}
11.介绍一下事件循环。给出下题输出结果。
console.log('begin')
setTimeout(() => {
    console.log('setTimeout 1')
    Promise.resolve().then(() => {
        console.log('promise 1')
        setTimeout(() => {
            console.log('setTimeout2 between promise1&2')
        })
    }).then(() => {
        console.log('promise 2')
    })
}, 0) console.log('end')
12.怎么判断一个对象是空对象?
13.useState为什么在调第二个函数的时候就能触发页面渲染?
14.webpack的打包工具都有哪些,怎么配置?
15.面试官总结:对于校招生毕业生来讲,在经验方面肯定是不太够的,那么我们去考察一个毕业生是否合格,就肯定会从基础上面去问,webpack、node、react的实现等,就比如,useState的原理。问这些的原因就是想看看你个人的潜力,想看看你个人能在未来两年或者多年后能走到多远。再说react,会用大家都会用,但你有没有去了解过怎么实现的?对于个人来讲,每个阶段有每个阶段的考察任务,对于你现阶段,就是看你基础,其他的都是你后面的事情,所以你要掌握好自己的节奏。

(别问,问就是凉了。面试官说得很对,对于校招生来讲,基础才是最重要的,在这次面试中,我忘了很多基础的东西(实习的锅...),但是对很多技术上的东西也没有达到一个深度,就这有点得不偿失,害,现在只能抽时间疯狂补基础了。o(╥﹏╥)o)


#前端工程师##校招##字节跳动##面经#
全部评论
第五个直接用replace,正则里面弄三个组,然后调换一下顺序应该满足要求吧
点赞 回复 分享
发布于 2020-09-07 12:15
这个是base哪里呀
点赞 回复 分享
发布于 2020-09-07 18:30
第5题可以试试用正则 let str = 'www.toutiao.com&(10000)#39; console.log(str.replace(/(www)\.(\w+)\.(com)/,`$3\.$2\.$1`));
点赞 回复 分享
发布于 2020-09-09 12:40

相关推荐

没有offer的小土豆:专业面试一般是分配面试官然后联系你面试 应该是还没给你分配对应面试官
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
5 27 评论
分享
牛客网
牛客企业服务