2023年前端小菜鸟的求职之路Day1

42 阅读2分钟

u=3008259279,4142770363&fm=253&fmt=auto&app=138&f=JPEG.webp

前言

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封装一个方法来处理它们?(手写)

没太理解意思