1. 面试自我介绍

“面试官您好,非常荣幸参与贵公司**职位的应聘,下面我简单介绍一下我的个人情况,基本信息之类的简历上都有,就不再重复,

首先介绍一下之前的工作经验……(挑一些跟应聘岗位有链接的内容说,如果有工作荣誉,千万不要漏掉)……,

之所以离开上一家公司是出于……考虑(离职理由要正当,尽可能从职业发展的角度出发)……

通过渠道关注到贵公司岗位的招聘信息,该职位跟我未来的职业发展相对契合,而且贵公司的业务(或者企业实力、行业口碑、企业文化等)对我都非常有吸引力,非常渴望能够进入贵公司发展……

我个人的基本情况是(受教育情况、婚育、住所、家庭简单情况),闲暇之余,我一般会做些**事情(有意义的)……

或许在所有的求职者当中,我不是最优秀的,但如果贵公司能够给我这个工作机会,我有信心,也有决心做好这份工作,以上是我的个人基本情况,希望今天自己面试有好的表现,未来有幸与诸位面试官共事,也预祝各位度过美好的一天。”

1. CSS

position 属性的介绍

1、absolute
2、relative
3、fixed
4、sticky

flex 布局的使用

垂直水平居中

2. js

Q:深拷贝浅拷贝

1
2
3
4
5
6
7
8
9
function deepClone(oldObj) {
if (oldObj == null) return oldObj;
if (typeof oldObj !== "object") return oldObj;
var newObj = Array.isArray(oldObj) ? [] : {};
for (let key in oldObj) {
newObj[key] = deepClone(oldObj[key]);
}
return newObj;
}

Q: 策略模式

Q: 原型链

Q: 继承的方式

参考文章

Q: 作用域链

参考文章

Q: 闭包

Q: 函数的自调是不是闭包

Q: TS 的好处

Q:

3. vue

vue3 和 vue2 的区别

Q:v-for 中 key 的作用

1、key 属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes
2、如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法;
而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除/销毁 key 不存在的元素。逻辑在/runtime-core/renderer.ts文件中。
3、无 Key 会执行patchChildren->patchUnkeyedChildren,从前到后遍历新 Vnode 与旧 Vnode。多出来旧 mount,少了就 unmount。
4、有 Key 会执行patchChildren->patchkeyedChildren >   4.1 取新旧 VNode 中长度小的来遍历 patch。到两个 VNode 的 type 和 key 不一致跳出循环。
  4.2 从后往前遍历 patch。到两个 VNode 的 type 和 key 不一致跳出循环。
  4.3 多出来进行 mount
  4.4 少了进行 unmount
  4.5 剩余情况类似顺序打乱,做一些更多的边界判断

Q: 响应式原理

Q: 生命周期

echarts

Q: echarts 的实现

init setOption resize等 API

canvas 原生的使用

webpack

Q: webworker 在 webpack 的使用

可以在将 worker 放在指定文件夹下。配置 loader 指向这个文件夹下的 js 文件

Q: 做过什么打包配置

其他开源组件

Q: 富文本编辑器有用过吗

Q: wangEditor 的实现