vue面试题总结

时间:2023-03-08 23:22:49
vue面试题总结

1、vue双向绑定的实现原理
2、js的继承和原型链
3、es6语法箭头函数和普通函数的区别

  • 普通函数的this总是指向它的直接调用者。
  • 在严格模式下,没找到直接调用者,则函数中的this是undefined。
  • 在默认模式下(非严格模式),没找到直接调用者,则函数中的this指向window。
箭头函数中的this始终指向其父级作用域中的this。换句话说,箭头函数会捕获其所在的上下文的this值,作为自己的this值。任何方法都改变不了其指向,如call(), bind(), apply()。在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用,它与调用时的上下文无关。我们用代码来解释一下。

4、vue父子兄弟组件之间传递信息的方式,
5、promise的作用

6、不用es6如何实现promise
7、element-ui的slot插槽
8、如何封装vue的插件
9、常用的es6属性

10、ref属性的应用场景

答:应用场景一:获取当前元素;应用场景二:父组件(home.vue)中使用子组件(child.vue)中定义的 export default {.......}中的属性等。

this.$refs.name2是个对象

11、【ES6】var、let、const三者的区别

块级作用域 {}
ES5 中作用域有:全局作用域、函数作用域。没有块作用域的概念。
ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。

var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问,可以变量提升。
let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

所谓变量提升,指的是变量声明总会被解释器"提升"到函数的顶部.

变量提升就是var在函数内部使用的时候,在var定义变量的语句之前是访问不到变量的! 所以避免预防的方法就是尽量不使用同名的变量名命名并且在函数头部定义变量并赋值。