前端面试第一次20190814

224 阅读4分钟

前言:今天收到第一份前端面试,是家外包的电话面试。今天也是办理离职手续的一天,刚走完离职流程在路上就收到面试电话,问了些基础问题,回答时有些紧张也有些生疏,记下漫漫面试之路的第一站吧。

常规问题:工作时间,询问学历,技术栈,项目,接触时间

  1. 列举Vue的v-属性(指令)

答:v-on:监听DOM事件(简写@) v-bind:动态绑定属性(简写:) v-if=条件判断(v-else) v-show=页面元素的可见 v-for="(value,key.index)"循环指令迭代对象

补充:v-model (表单修饰符.lazy .number .trim)表单输入和应用状态的双向绑定3 v-html=和v-text= v-on的事件修饰符.stop阻止单冒泡事件(@click.stop) .prevent提交时间不在重载页面 .capture添加事件监听器时使用事件捕获模式 .self只有在该元素触发时出发回调(非子元素) .once事件只能点击一次 按键修饰符 .enter .space .esc

  1. v-if和v-show区别

答:相同点:都是通过赋值真假控制显示隐藏; 区别:v-if在假时会删除节点,v-show是控制display:none控制隐藏

  1. 异步axios的使用
答:npm install axios 在main.js中引入声明/挂载到VUe.prototype.$http上,
在各个组件中使用this.$http.get(url).then().catch()
  1. Vuex的了解

答:不会

补充:vuex时Vue中生态系统的状态管理,在main.js中引入store,注入,新建一个目录store

  1. js的数组操作方法

答:push unpush记不清了 分割split(',') 倒置reverse() 加入数组join('')

补充:push()数组末尾添加元素 pop()删除数组最后一个元素 shift()删除数组第一个是元素 unshift()在数组第一个元素前添加数组 splice()可以删除添加元素-返回删除的元素 参数1:起始位置 参数2:结束位置 参数3:可选(添加元素) sort()排序6

  1. computed和watch的对比

答:computed:计算属性,会利用缓存数据,只有相关以来发生改变才会重新取值(性能更好computed默认只有getter属性,手动可加setter属性) watch:监听属性,原始数据一旦发生变化会自动重新计算数据

补充:methods在重新渲染的时候,函数总会重新调用执行

  1. 双向绑定原理

答:

补充:vue.js是采用数据劫持结合发布者-订阅者模式的方式,是通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息 给订阅者,出发相应的监听回调。

  1. Vue传值

答:1. 父子组建传值props 2.子向父组件传值 emiton 3.兄弟组件通信this.parent.childern在$children通过name查询组件实例 4.任意组件使用vuex或Event Bus

  1. 生命周期函数

答:总共八个阶段: 创建前后:beforecreate和created(el实例data尚未挂载) 载入前后:beforemount时el和data挂载在虚拟dom节点,mountde实例挂载完成 更新前后:data发生变化后会触发beforeUpdate和updated方法 销毁前后:beforeDestroy在实例销毁前依旧可用,destoryed在实例雄销毁后调用,所有监听器移除子实例销毁

  1. 对mvvm的理解

答:MVVM 是 Model-View-ViewModel 的缩写。 Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。 View 代表UI 组件,它负责将数据模型转化成UI 展现出来。 ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和 Model的对象,连接Model和View。 在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。 ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。