字节前端一二三面凉经
一面 3/23
-
自我介绍
-
实习项目主要做了什么
-
说一下css的position属性
-
说一下http缓存(问的很细,叙述过程中会有打断提问)
-
项目中有没有遇到过跨域,这是什么,怎么解决的
首先说了项目中用到了Nginx代理进行跨域,这个就没有继续深入问;然后说CORS,这个就问的比较细,什么是简单请求非简单请求,都是怎么个流程,具体到请求的http头部信息都有问到,过程中也是多次打断提问
-
为什么CORS要区分简单请求和非简单请求
-
将一个典型回调风格的功能函数变为promise风格的,刚开始我没太理解啥意思,然后面试官就给了具体的例子
面完12点多点,面试官说中午了,今天就这样吧,你去吃饭吧。猝不及防就结束了。。。也没有反问环节
下午正愉快地刷着小破站接到了电话约二面时间,我当时想着早点结束就约了第二天下午
二面 3/24
-
自我介绍
-
学习前端多久了,怎么学习的
-
实习项目
-
做过最复杂的一个功能
-
你觉得这段实习经历主要有什么收获
-
学过哪些专业课,选了哪些选修课
-
说一下数据结构中的栈、堆、队列
-
JS中有栈和堆吗
-
进程和线程有什么区别
-
比较一下单线程和多线程
-
JS为什么是单线程的(中间又引到了dom加载渲染的一些问题)
-
实现一个findMax函数
回答完我的问题面试官让我等一会,他问一下另一个面试官有没有空,大概过了两分钟他说三面面试官5点-5点零五会进入面试房间,我就赶紧先退出倒了杯水缓会又进入了面试房间
三面 3/24
-
介绍实习项目
-
项目中移动端是怎么用rem做的适配
-
说一下em、vh、vw,自己项目有没有用到过vh、vw
-
(前面说到个东西引到的)如果左边栏固定,右边做自适应用flex怎么实现
-
Chrome浏览器用过哪些调试工具
-
影响网页首页加载的因素有哪些
-
箭头函数与普通函数的区别
-
Vue3有什么新特性
-
实现数组的负索引,比如arr[-1]表示数组的最后一个元素,arr[-2]倒数第二个元素,自定义类的那种
const arr = new MyArray(1,2,3,4...) arr[-1]
我开始的思路就是以为要实现个迭代器的那种,他就说那你写,我说不会,,,面试官就提示,说用我之前说到的数据劫持Object.defineProperty或者Proxy,本来他一说我觉得哎对可以,然后写了一点发现不太ok,最后还是没写出来,面试官又提供了一些思路,但是没让我继续写了,说换个题
-
实现一个Queue链式调用,1s、3s、5s后输出1,2,3;调用start才开始,调用stop可随时结束
const queue = new Queue(); queue .task(1000, () => {console.log(1)}) .task(2000, () => {console.log(2)}) .task(2000, () => {console.log(3)}) .start() // stop()
-
有没有做过动画?如何实现一个元素从左向右移动,每秒1px
CSS3的动画相关很久没碰过了,不太记得了,大致说了如何实现,问记不记得具体的属性名,我忘了。。。
-
判断一个对象是否存在循环引用
var a = { b: null, c: null } a.b = a;
因为二三面连着的,太多了可能会有些遗忘,也有可能顺序不太对,但是大概就这么多吧。。。三面也没有反问环节,面试官说到了他们的饭点了,今天就这样了,如果有后续近期会再联系我,就拜拜了。
今天下午发现状态是流程终止了,不得不说字节这效率真是杠杠的😑
#面经##字节跳动##前端工程师##实习#