1.实习介绍2.虚拟列表具体实现,问列表的高度是动态的要如何实现3.JavaScript的this指向4.给代码看输出(this指向、call、)5.给代码看输出(this指向)6.原型对象的create7.Object.create实现构造函数的原型继承,构造函数的原型继承8.给代码看结果是true/false(原型)9.给代码看结果(__proto__)10.事件循环11.给代码看输出(事件循环,同步任务、微任务、宏任务)12.给代码看输出(变量提升和暂时性死区TDZ)13.let和var的变量提升14.给代码看输出(TypeScript)const arr=[1,2,3] as constType A = typeof arr[number];15.Vuex和Pinia的区别16.Vue3和Vue2的区别(API、响应式原理)17.自定义个Hook实现全局的状态管理,需要导出暴露什么?有几种实现方案?我说了单例模式和响应式数据,应该不是面试官的答案,我又说使用provider/inject和响应式对象。面试官提示了一下用computed的特点,只读性,保证导出是可读的,必须要使用导出的setter方法修改,保证数据的一个唯一修改方法。18.reactive丢失响应式的原因?解决方法19.前端性能优化20.代码分割(code spliting)是基于什么分割的?处理逻辑是怎么样的?21.为什么有些包会很大?使用哪些工具去进行分析和排查22.手撕算法:找出数组里面出现次数最多的元素和出现的次数