没事干写面经——字节飞书前端
一面:
1、npm包有哪些license,哪些是允许商用的
2、虚拟列表的实现原理
3、输入url到页面渲染的流程
4、强缓存和协商缓存,cache-control里的具体字段
5、http状态码
6、script标签如何加载
7、重排和重绘
8、js是单线程还是多线程,什么情况会新开一个线程
9、web worker有哪些限制,与主线程怎么通信
10、什么是同源策略,怎么解决跨域,cors有哪些配置
11、js数据类型,栈和堆的区别
12、垃圾回收机制
13、事件循环,看代码写输出顺序
14、手写promise.all
15、多叉树找某个值
二面:
1、自我介绍
2、聊项目
3、为什么小程序的登录流程会搞的这么复杂?
4、为什么会选echarts作为图表库?
5、https怎么做加密的?
6、react受控组件和非受控组件区别
7、useLayoutEffect和useEffect区别
8、hooks为什么不能放到if条件语句里
9、memorizedState存在哪?
10、setState是同步还是异步
11、react18的concurrent模式
12、vue2和vue3响应式的区别
13、前端技术趋势
14、
const obj = { name: 'bar', sayName: function() { let self = this console.log(this.name); console.log(self.name); (function() { console.log(this.name); console.log(self.name); })() } } obj.sayName() // 打印什么 const func = obj.sayName func() // 打印什么
匿名函数换成箭头函数又会输出什么?箭头函数和普通函数有什么区别?
15、es6新语法
16、浏览器和node环境的事件循环
17、最有成就感的事情
18、做题:flat拍平数组,循环依赖怎么办
19、做题:lazyMan