站点工具

用户工具


作者:牛客184874831号 链接:https://www.nowcoder.com/discuss/623705?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=3EB8F4DA34F6E607742764CE88DC6427-1638954088220 来源:牛客网 2021-04-04

字节前端一二三面凉经

一面 3/23

1.自我介绍

2.实习项目主要做了什么

3.说一下css的position属性

4.说一下http缓存(问的很细,叙述过程中会有打断提问)

5.项目中有没有遇到过跨域,这是什么,怎么解决的

首先说了项目中用到了Nginx代理进行跨域,这个就没有继续深入问;然后说CORS,这个就问的比较细,什么是简单请求非简单请求,都是怎么个流程,具体到请求的http头部信息都有问到,过程中也是多次打断提问

6.为什么CORS要区分简单请求和非简单请求

7.将一个典型回调风格的功能函数变为promise风格的,刚开始我没太理解啥意思,然后面试官就给了具体的例子。fs.readFile是一个读取文件信息的函数, 最后一个参数是回调函数 ,初始我就当只有一个参数写的,面试官提醒了一波,实现一个promisify函数

fs.readFile('1.txt', {encode: 'utf-8', (err, data)=>{}})
 
const newReadFile = promisify(fs.readFile)
 
newReadFile('1.txt', {encode: 'utf-8'}).then(data=>{}).catch(err=>{})

8.实现数组扁平化,我刚开始用的reduce实现的,然后面试官又加了一个要求,让直接改原数组

面完12点多点,面试官说中午了,今天就这样吧,你去吃饭吧。猝不及防就结束了。。。也没有反问环节

下午正愉快地刷着小破站接到了电话约二面时间,我当时想着早点结束就约了第二天下午

二面 3/24

1.自我介绍

2.学习前端多久了,怎么学习的

3.实习项目

4.做过最复杂的一个功能

5.你觉得这段实习经历主要有什么收获

6.学过哪些专业课,选了哪些选修课

7.说一下数据结构中的栈、堆、队列

8.JS中有栈和堆吗

9.进程和线程有什么区别

10.比较一下单线程和多线程

11.JS为什么是单线程的(中间又引到了dom加载渲染的一些问题)

12.实现一个findMax函数

function findMax(m,n) {}
//m:正整数
//n: 去掉小于m位正整数
//return: 剩余数字可能的最大值
 
m:349869, n:3, return: 989
m: 92837451, n:3, return: 98751 
  1. 反问环节

回答完我的问题面试官让我等一会,他问一下另一个面试官有没有空,大概过了两分钟他说三面面试官5点-5点零五会进入面试房间,我就赶紧先退出倒了杯水缓会又进入了面试房间

三面 3/24

1.介绍实习项目

2.项目中移动端是怎么用rem做的适配

3.说一下em、vh、vw,自己项目有没有用到过vh、vw

(前面说到个东西引到的)如果左边栏固定,右边做自适应用flex怎么实现

4.Chrome浏览器用过哪些调试工具

5.影响网页首页加载的因素有哪些

6.箭头函数与普通函数的区别

7.Vue3有什么新特性

8.实现数组的负索引,比如arr[-1]表示数组的最后一个元素,arr[-2]倒数第二个元素,自定义类的那种

const arr = new MyArray(1,2,3,4...) 
arr[-1]

我开始的思路就是以为要实现个迭代器的那种,他就说那你写,我说不会,,,面试官就提示,说用我之前说到的数据劫持Object.defineProperty或者Proxy,本来他一说我觉得哎对可以,然后写了一点发现不太ok,最后还是没写出来,面试官又提供了一些思路,但是没让我继续写了,说换个题

9.实现一个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() 

10.有没有做过动画?如何实现一个元素从左向右移动,每秒1px

CSS3的动画相关很久没碰过了,不太记得了,大致说了如何实现,问记不记得具体的属性名,我忘了。。。

11.判断一个对象是否存在循环引用

var a = { 
    b: null,
    c: null
}
a.b = a;

因为二三面连着的,太多了可能会有些遗忘,也有可能顺序不太对,但是大概就这么多吧。。。三面也没有反问环节,面试官说到了他们的饭点了,今天就这样了,如果有后续近期会再联系我,就拜拜了。

今天下午发现状态是流程终止了,不得不说字节这效率真是杠杠的😑

若愚 · 2021/12/08 17:17 · 前端面经_字节31.txt