面试题1

196 阅读3分钟

记2022年第一次面试

一、自我介绍环节

二、面试题

1. Vue3.0 和 Vue2.0 的区别?

传送门1盘点 Vue3 与 Vue2 的区别 - 掘金 (juejin.cn)

传送门2面试官:vue3有了解过吗?能说说跟vue2的区别吗? | web前端面试 - 面试官系列 (vue3js.cn)

变化: Vue3.0 相比 Vue2.0,

  • 速度更快; 体积减少; 更易维护; 更接近原生; 更易使用;
    

1) 生命周期:

Vue2.0Vue3.0
beforeCreatesetup
createdsetup
beforeMountonBeforeMount
mountedonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeDestroyonBeforeUnmount
destroyedonUnmounted

Vue2.0 的生命周期钩子函数不需要引入即可使用,而 Vue3.0 的生命周期钩子函数在使用前需要引入。

2)多根节点:

在 Vue2.0 中,在模板中如果使用多个根节点会报错,template标签中只能存在一个根节点,需要使用div标签来包裹; 但是 Vue3.0 中支持多个根节点。

3)Composition API(组合式API):

Vue2.0 是选项式API(Option API),一个逻辑会散乱在文件的不同位置(data、props、computed、watch、生命周期钩子等),导致代码的可读性变差。当需要修改某个逻辑时,需要上下来回跳转文件位置。

Vue3.0 是组合式API(Composition API),可将同一逻辑的内容写到一起,增强了代码的可读性、内聚性,其还提供了较为完美的逻辑复用性方案。

4)响应式原理:

Vue2.0 响应式原理基础是 Object.defineProperty;Vue3.0 响应式原理基础是 Proxy。

5)TypeScript 支持:

Vue3.0 由 TypeScript 重写,相对于 Vue2.0 有更好的 TypeScript 支持。

2. 说一下Vue3.0 中的 setup 的生命周期。

setup() 是组合式API的入口函数,可以直接在里面定义变量和方法(数据和业务逻辑),通过对象的形式返回暴露出去。

setup 的执行顺序在 beforeCreate 之前。

3. ES6 的新特性有哪些?

  1. const 和 let 关键字;
  2. map 和 set 数据类型;
  3. 模板字符串;
  4. 对象数组解构赋值;
  5. 函数剩余参数;(...arg)
  6. 扩展运算符;(...)
  7. 形参默认值; fn(name = 'zs')
  8. 对象字面量的增强(属性名和属性值相同,可缺省);
  9. Promise 异步对象;
  10. class 类的支持;
  11. async / await;

4. 说一下对数组进行去重有哪些方法。

Snipaste_2022-03-28_23-35-26.png

5. v-if 和 v-show 的区别?

两者都可以控制元素是否显示,v-show 是通过 CSS 的方式来隐藏元素,而 v-if 是根据条件是否成立来决定是否要创建元素。如果某个元素需要频繁切换显示状态的话,建议使用 v-show,因为使用 v-if 频繁创建销毁 DOM 需要性能开销。

6. Vue 父子组件之间的通信方案?

image.png

7. 说一下CSS 的特性(三大特性)。

传送门:CSS的三大特性 - 随风行云 - 博客园 (cnblogs.com) 层叠性、继承性、优先级

三、反问环节

  1. 您认为您的团队中有哪些能够吸引到您的地方?
  2. 能说一下公司对于新人的培养体系吗?
  3. 请问工作环境是怎样的?
  4. 目前小组研发团队多少人?
  5. 前端多少人?