我的面试题
1. 面试自我介绍
“面试官您好,非常荣幸参与贵公司**职位的应聘,下面我简单介绍一下我的个人情况,基本信息之类的简历上都有,就不再重复,
首先介绍一下之前的工作经验……(挑一些跟应聘岗位有链接的内容说,如果有工作荣誉,千万不要漏掉)……,
之所以离开上一家公司是出于……考虑(离职理由要正当,尽可能从职业发展的角度出发)……
通过渠道关注到贵公司岗位的招聘信息,该职位跟我未来的职业发展相对契合,而且贵公司的业务(或者企业实力、行业口碑、企业文化等)对我都非常有吸引力,非常渴望能够进入贵公司发展……
我个人的基本情况是(受教育情况、婚育、住所、家庭简单情况),闲暇之余,我一般会做些**事情(有意义的)……
或许在所有的求职者当中,我不是最优秀的,但如果贵公司能够给我这个工作机会,我有信心,也有决心做好这份工作,以上是我的个人基本情况,希望今天自己面试有好的表现,未来有幸与诸位面试官共事,也预祝各位度过美好的一天。”
1. CSS
position 属性的介绍
1、absolute
2、relative
3、fixed
4、sticky
flex 布局的使用
垂直水平居中
2. js
Q:深拷贝浅拷贝
1 | function deepClone(oldObj) { |
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 文件