面试题记录

162 阅读5分钟

面试题记录

1.vue2和vue3有哪些差别

  • 双向数据绑定的响应式原理不同
  • vue3支持碎片化 可以有多个跟节点
  • API设计不同 vue2是option选项式api vue3是composition组合式api
  • 生命周期钩子函数不同
  • 更好的支持TS

2.虚拟dom有哪些优点

1.提高性能

  • 减少直接操作真实 DOM 的开销。
  • 在网页开发中,频繁地操作真实 DOM 是非常耗费性能的。因为真实 DOM 的操作涉及到浏览器的重排(reflow)和重绘(repaint),这些操作会导致浏览器花费大量时间来计算和更新页面的布局和样式。而虚拟 DOM 是一个轻量级的 JavaScript 对象,对它进行操作比对真实 DOM 操作要快得多。
  • 例如,当你需要更新一个包含大量子元素的列表时,如果直接操作真实 DOM,可能会导致整个列表的重新渲染,而使用虚拟 DOM 可以通过比较新旧虚拟 DOM 的差异,只更新发生变化的部分,从而减少不必要的重排和重绘

2.跨平台性

3.可维护性

  • 使用虚拟 DOM 使得 Vue 的渲染过程更加清晰和易于理解。开发者只需要关注数据的变化和组件的逻辑,而不需要直接操作复杂的真实 DOM。

  • 虚拟 DOM 的渲染过程通常是通过将组件的状态映射为虚拟 DOM 树,然后比较新旧虚拟 DOM 树的差异,最后将差异应用到真实 DOM 上。这种清晰的渲染逻辑使得代码更易于维护和调试。

3.v-model 实现原理

4.js事件循环的理解,如果用户触发点击事件怎么执行

5.git 5次记录 只想提交第3次 用什么命令

查看历史提交: 首先,你可以使用 git log 查看过去的提交,以便确定你想要的版本。

git log --oneline

使用交互式选择提交: 你可以使用 git rebase 命令的交互式模式来选择你要提交的更改。输入以下命令:这将打开一个文本编辑器,显示最近5次提交的列表

git rebase -i HEAD~5

修改提交选择: 在打开的编辑器中,你将看到类似于以下的内容:将除了你想要的那一行(第三次提交)外的其他行前的pick改为drop,只保留第三次提交,例如:

pick abcdef1 提交信息1
pick abcdef2 提交信息2
pick abcdef3 提交信息3
pick abcdef4 提交信息4
pick abcdef5 提交信息5
drop abcdef1 提交信息1
drop abcdef2 提交信息2
pick abcdef3 提交信息3
drop abcdef4 提交信息4
drop abcdef5 提交信息5

保存并退出: 保存文件并退出编辑器,Git 会进行相应的变更。

强制推送(如果在远程分支上) : 如果你已经推送了这些提交到远程分支,你可能需要使用强制推送来更新远程分支: git push origin <branch-name> --force

6.hooks的好处

vue3中的hooks就是函数的一种写法,就是把单独功能的js代码抽离出来,放到单独js文件中,或者说是把一些可以复用的公共的功能抽离出来。 和vue2 的mixins有点类似。

hooks的优点

  • 提升代码复用性:告别重复代码,一个Hook多处使用。
  • 增强代码可读性:逻辑清晰,组件简洁。
  • 副作用管理:Hook内管理副作用,组件更干净。 副作用(如事件监听、定时器)管理起来总是手忙脚乱?Hook帮你搞定。在onMountedonUnmounted中注册和注销,让副作用来得快去得也快

7.ref和reactive的区别

  • 1.ref可以定义基本数据类型和引用数据类型,reactive只能定义引用类型数据
  • 2.ref定义的数据访问时要加 .value 在temelate中则不需要
  • 3.reactive定义的对象 直接复制会丢失响应式,解构也会丢失响应式

8.改变this指向有哪些方法

bind call apply 主要区别是 参数传递不一样

call参数 是arg1,arg2,arg3

apply参数是[arg1,arg2,arg3]

9. for of 和for in 区别

for in下标从0开始,for of 下标从1开始,在数组中。

for of与for in遍历对象,for in下标从0开始,只能获取键名 而for of不能遍历对象

10.new关键字做了些什么

1. 创建一个新对象
2. 把构造函数的作用域复制给新对象
3. 执行构造函数代码
4. 返回新对象

10月10日 面试

1.js如何创建一个类
  1.通过构造函数模式 定义一个函数 通过new 实例化这个函数 得到一个实例
2.http和https 的区别
   https 默认端口443  不要证书       明文传输      速度快
   http  默认端口80   需要CA证书     ssl/tls加密   速度慢
3.webpack 打包 步骤
   初始化参数
   解析配置文件
   读取入口文件
   解析模块依赖
   

10月12日

什么是图片懒加载,懒加载和预加载有什么区别
 懒加载也加延时加载,只有当图片进入页面可视区后再去加载,预加载是提前加载