前言
2023年又是一个互联网的寒冬,来自2023年求职的面试总结。
1.项目
介绍项目的时候直接跳进面试官的陷阱,说了解过element源码,然后一个日期组件如何实现的直接将我打入冰窖。(没有仔细研究过源码最好还是别提自己看过源码)
2.平时的学习方式有哪些
视频、博客、MDN、社区
3.vue的计算属性
- 缓存--(缓存是如何实现的?缓存了什么东西?)
- 一对多
- 响应式---底层借助了Object.defineproperty方法提供的getter和setter
4.箭头函数
- 没有自己的this
- 没有原型
- 没有参数arguments
5.下面的代码输出了什么?改成箭头函数呢?
const a = {
fn: function() {console.log(this)}
}
const b = a
a.fn()
b.fn()
考核的是this的基本使用
6.vue中的data为什么是一个函数而不是对象?
JS中的实例是通过构造函数来创建的,每个构造函数可以new出很多个实例,那么每个实例都会继承原型上的方法或属性。vue的data数据其实是vue原型上的属性,数据存在于内存当中。vue为了保证每个实例上的data数据的独立性,规定了必须使用函数,而不是对象。 因为使用对象的话,每个实例(组件)上使用的data数据是相互影响的,这当然就不是我们想要的了。对象是对于内存地址的引用,直接定义个对象的话组件之间都会使用这个对象,这样会造成组件之间数据相互影响。
7.ES6中为什么要新增let和const
var变量提升、无作用域限制、重复声明
8.看你的项目中使用过vue-cropper,它是怎么实现的?
9.后端如果给你一个省市区的列表list,怎么用Promise封装一个方法来处理它们?(手写)
没太理解意思