前端北森一面
12.9一面50分钟(已挂)
错过了秋招,12月份才投的简历。记录一下我的第一次面试过程,面试官人挺好的。
JS相关
1.讲一下继承,然后追问了如何实现原型链继承和构造函数继承?
- 原型继承
- 原型链继承
Son.prototype=new Father()
- 构造函数继承
Father.call(this)
}
- 组合继承
- 寄生继承
- 寄生组合继承
- class 中的extends继承
- let,const
- 箭头函数
- promise
- symbol,map,set
- class
- 扩展运算符
- 解构赋值
3.箭头函数
4.this指向问题
- 函数直接调用分两种情况,严格模式和非严格模式
-
// 非严格,指向window function f1(){ return this; } f1() === window; // true
//而严格模式下, this为undefined function f2(){ "use strict"; // 这里是严格模式 return this; } f2() === undefined; // true
- 对象调用指向对象 //obj.fn()
- 构造函数里的this指向new出来的那个对象
- 箭头函数的this 指向其所在(即定义的位置)上下文的this值
5.数组去重
- 2个for循环,重复的就splice,这里要注意splice会影响原数组,删除了一个元素,你的索引记得--,然后在往下。
- sort排序,相邻两个作比较,也是相同的就splice,注意同上
- 创建一个新数组,可以用indexOf()或includes() 新数组没有就push
- arr.reduce((pre,cur)=>{...},[]) //其实原理和上一种方法一样
- Array.from(new Set(arr)) //利用set数据结构
- 利用对象的属性
if ( !obj[arr[i]] ) {
res.push( arr[i] );
obj[arr[i]] = 1;
}
emmm我讲了上面的那些,但是面试官问还有吗?从算法的角度出发。
我没想出来。
6.讲一下promise
我说了与异步编程相关,解决回调地狱,支持链式调用。以及promise对象的状态
然后面试官问promise如何实现链式回调?就.then之后为何可以.then?
答:.then返回一个promise对象
7.跨域(这里我答的很不好,没讲多少) - cors
- josnp
9.垃圾回收机制
- 标记清理
- 引用计数
改变this指向的,参数不同,call,apply调用后立即执行,bind返回一个函数。
vue相关
1.v-model原理
2.slot
3.vuex
4.vue-router
5.vue3.0
6.全局组件和局部组件
- 全局在main.js中导入import 然后Vue.component() (一些基础组件,复用性高的可以注册为全局组件)
- 局部组件
7.自定义指令
8.vue的生命周期,以及用哪个钩子函数比较多
ceated:处理请求
mounted:操作dom元素
9.场景题--设计一个弹窗组件,渲染内容,位置不定
css相关
1.相对定位是相对于谁
2.css3
- css选择器
- 动画
反问:
1.技术栈?react
#北森##面经#