字节国际化电商一二三四面凉经
一面:
1.自我介绍,以后发展
2.进程和线程的理解,一个线程挂起对进程有影响吗,进程间通信方式,挑一个说一说
3.死锁了解过吗,如何避免死锁
4.输入url到展现出来的过程,越详细越好,dns解析的详细过程,比如输入www.baidu.com,解析流程
5.tcp三次握手,最后一次握手作用,http为什么是基于tcp的(介绍tcp和udp的不同),保证可靠传输的方法
6.一个页面上百个请求如何优化,使用websocket如何优化,HTTP2.0通过什么底层来完成多路复用的
7.浏览器的缓存策略(强缓存和协商缓存),etag和last modifyed优先级,如何永久使用本地缓存
8.互相依赖的三个库,按顺序执行又不阻塞渲染过程的方法,defer和async
9.要在页面上添加1000dom节点,如何去优化,再在中间再插入一个dom节点,如何优化
10.同源不同标签的页面通信方式
11.flex布局
12.事件循环,宏任务微任务,requestanimationframe回调函数中进行大量计算,会阻塞页面的渲染吗
2.进程和线程的理解,一个线程挂起对进程有影响吗,进程间通信方式,挑一个说一说
3.死锁了解过吗,如何避免死锁
4.输入url到展现出来的过程,越详细越好,dns解析的详细过程,比如输入www.baidu.com,解析流程
5.tcp三次握手,最后一次握手作用,http为什么是基于tcp的(介绍tcp和udp的不同),保证可靠传输的方法
6.一个页面上百个请求如何优化,使用websocket如何优化,HTTP2.0通过什么底层来完成多路复用的
7.浏览器的缓存策略(强缓存和协商缓存),etag和last modifyed优先级,如何永久使用本地缓存
8.互相依赖的三个库,按顺序执行又不阻塞渲染过程的方法,defer和async
9.要在页面上添加1000dom节点,如何去优化,再在中间再插入一个dom节点,如何优化
10.同源不同标签的页面通信方式
11.flex布局
12.事件循环,宏任务微任务,requestanimationframe回调函数中进行大量计算,会阻塞页面的渲染吗
13.看代码输出
一
setTimeout(() => { console.log(1); }); new Promise((res, rej) => { console.log(2); res(3); }) .then( (val) => { console.log(val); return new Promise((resolve) => { resolve(4); }).then((s) => { return Promise.reject(s); }); }, (error) => { console.log("callback", error); } ) .catch((err) => { console.log("catch", err); });
二
var a = "window"; var foo = { a: "foo", geta: function () { console.log(this.a); }, geta1: () => { console.log(this.a); }, geta2: function () { return (() => console.log(this.a))(); }, }; foo.geta(); foo.geta1(); foo.geta2(); let aa = foo.geta, bb = foo.geta1, cc = foo.geta2; aa(); bb(); cc();三
function Counter() { const [setCount, count] = useState(0); useEffect(() => { setInterval(() => { setCount(count + 1); }, 1000); }, []); return <div>{count}</div>; }
15.反问
二面:
1.自我介绍
2.http请求头content type种类以及作用
3.https和http之间的差异,https发起到建立连接的过程(对称加密和非对称加密,证书的作用)
4.跨域如何产生,解决方案以及他们的优缺点,同源策略
5.cookie,localstorage,sessionstorage区别以及应用场景
6.js事件模型,事件触发顺序,事件代理以及他的优点(减少绑定事件的次数,面试官补充:动态创建节点不手动绑定也可以正常响应事件)
7.常用的hooks,usecallback和usememo区别以及使用场景
8.项目中的难点,你是如何解决的
9.了解react fiber吗,你是如何看待的
10.编程 实现一个Event类
11.反问
2.http请求头content type种类以及作用
3.https和http之间的差异,https发起到建立连接的过程(对称加密和非对称加密,证书的作用)
4.跨域如何产生,解决方案以及他们的优缺点,同源策略
5.cookie,localstorage,sessionstorage区别以及应用场景
6.js事件模型,事件触发顺序,事件代理以及他的优点(减少绑定事件的次数,面试官补充:动态创建节点不手动绑定也可以正常响应事件)
7.常用的hooks,usecallback和usememo区别以及使用场景
8.项目中的难点,你是如何解决的
9.了解react fiber吗,你是如何看待的
10.编程 实现一个Event类
11.反问
三面:
1.自我介绍
2.说说你的实习经历,项目相关
3.使用echarts渲染图表过多,页面卡顿,如何优化,说一说你的思路,异步加载图表如何实现,如何在浏览器空闲时间去做图表的渲染(应该是requestIdleCallback,没用过)
4.为什么选择jwt去做登陆的校验,而不去选用传统的cookie,session去做登录,jwt的工作过程是怎样的
5.停留在页面上面,不做动作, 登录态是不会过期的,但是你设置的持久化登录过期时间很短,用户时间停留时间比较长,超过过期时间,但是页面还是在停留,有什么解决方法(websocket,轮询,问还有什么方法)
6.实现多账号可快速登录,只有一个账号是在使用的,token需要进行哪些改造
7.设计一个组件,实现文字上下轮播,比如中奖信息,实现首尾连接,并朝一个方向滚动。(轮播图的实现原理)
8.手写 判断输入是否是一个ipv4地址
9.手写 js控制并发请求数
10.反问
2.说说你的实习经历,项目相关
3.使用echarts渲染图表过多,页面卡顿,如何优化,说一说你的思路,异步加载图表如何实现,如何在浏览器空闲时间去做图表的渲染(应该是requestIdleCallback,没用过)
4.为什么选择jwt去做登陆的校验,而不去选用传统的cookie,session去做登录,jwt的工作过程是怎样的
5.停留在页面上面,不做动作, 登录态是不会过期的,但是你设置的持久化登录过期时间很短,用户时间停留时间比较长,超过过期时间,但是页面还是在停留,有什么解决方法(websocket,轮询,问还有什么方法)
6.实现多账号可快速登录,只有一个账号是在使用的,token需要进行哪些改造
7.设计一个组件,实现文字上下轮播,比如中奖信息,实现首尾连接,并朝一个方向滚动。(轮播图的实现原理)
8.手写 判断输入是否是一个ipv4地址
9.手写 js控制并发请求数
10.反问
四面:
1.自我介绍
2.项目相关。实习收获
3.用hooks实现一个组件实现倒计时的功能
4.普通函数和箭头函数的区别
5.Generator函数你的理解
5.Iterator函数,以及你的理解
6.反问