2023面试问题避坑总结一下

1. Vue2,vue3区别

  • Vue3使用了Proxy代替了Object.defineProperty来实现响应式;
  • Vue3使用了Tree-shaking技术来减小打包体积;
  • Vue3的编译器性能得到了大幅提升;
  • Vue3的API设计更加简单易用;
  • Vue3支持Composition API,使得代码结构更加清晰;
  • Vue3移除了一些不常用的API,如inline-template、filters等。

2. Vue,vue3 diff算法的认识

  • Vue2的diff算法是采用双向比较的方式,即从父节点开始,同时递归向下比较新旧子节点,找到相同的节点进行复用,找到不同的节点进行更新。这种算法的效率并不高,尤其是在大型列表渲染时。
  • Vue3的diff算法采用了优化的单向比较,即从父节点开始,递归向下比较新旧子节点,找到相同的节点进行复用,找到不同的节点进行更新。同时,Vue3还使用了一些优化技术,如静态提升、Block Tree等,使得渲染性能得到了大幅提升。

3. Vue2,vue3 v-if v-for优先级和源码

  • 在Vue2中,v-for的优先级高于v-if,即先循环再判断条件。在源码中,v-for的编译优先级在v-if之前。
  • 在Vue3中,v-if的优先级高于v-for,即先判断条件再循环。在源码中,v-if的编译优先级在v-for之前。

4. Vue2 vue3 组件挂载流程及vue3访问数据的优先级

  • 在Vue2中,组件挂载的过程是先实例化组件对象,然后进行模板编译,最后挂载到DOM上。访问数据的优先级是props > data > computed > methods。
  • 在Vue3中,组件挂载的过程是先进行模板编译,然后实例化组件对象,最后挂载到DOM上。访问数据的优先级是props > setup > data > computed > methods。

5. vuex源码,$stroe

  • Vuex是Vue的状态管理库,它的源码实现主要包括State、Getter、Mutation、Action、Module等模块。$store是Vuex中的一个全局对象,用于存储和管理状态。
  • 在Vuex源码中,State模块负责存储状态,Getter模块负责获取状态,Mutation模块负责修改状态,Action模块负责异步操作和提交Mutation,Module模块负责模块化管理状态。
  • 通过store对象,可以访问和修改Vuex中的状态,例如store.state、store.getters、store.commit、$store.dispatch等。

6. 浏览器加载资源过程, script async defer 区别

  • 浏览器加载资源的过程包括:DNS解析、建立TCP连接、发送HTTP请求、服务器响应、处理响应内容、解析HTML、解析CSS、解析JavaScript等步骤。
  • script标签默认会阻塞页面的渲染,因此为了提高页面渲染速度,可以使用async和defer属性来异步加载脚本。async属性表示异步加载脚本,不会阻塞页面的渲染,但脚本加载完成后会立即执行。defer属性表示延迟加载脚本,不会阻塞页面的渲染,但脚本会在文档解析完成后按照顺序执行。

7. v8引擎, 事件循环, 垃圾回收

  • v8引擎是一款开源的JavaScript引擎,由Google开发,用于在Chrome浏览器中执行JavaScript代码。v8引擎采用了即时编译技术,将JavaScript代码编译成机器码,使其执行速度得到大幅提升。
  • 事件循环是JavaScript执行环境中的一种机制,用于处理异步任务。当异步任务完成后,事件循环会将其放入任务队列中,等待JavaScript引擎执行。JavaScript引擎会在当前任务执行完成后,从任务队列中取出下一个任务并执行,这样循环执行,直到任务队列为空。
  • 垃圾回收是指JavaScript引擎自动删除不再使用的内存空间的过程。JavaScript中的变量和对象会占用内存空间,当其不再被引用时,JavaScript引擎会标记这些内存空间为可回收状态。随着程序的运行,JavaScript引擎会定期进行垃圾回收,将这些不再使用的内存空间释放,以便其他程序使用。v8引擎采用了垃圾回收算法,如标记-清除、增量标记等,使内存管理更加高效。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值