作业帮视频面凉经
这次面试是自己第一次视频面试,可以说是有很多尬笑点,面试官问我为什么老是往右边看,我就说因为我在看着你的脸啊,屏幕是在右边hhh。
1.对闭包有了解吗?可不可以说说你的理解?
第一个问题热身之后,面试官二话不说就是两个console结果判断题,分别涉及了原型链和this指向
2.关于原型链的继承
function A(val){ this.age = val || 2; } A.prototype.age = 3; function B(val){ A.call(this,val); } //B.prototype = Object.create(A.prototype); B.prototype = new A(); B.prototype.constructor = B; var a = new A(); var b = new B(1); console.log(a.age); //2 console.log(b.age); //1 console.log(A.age); //undefined console.log(B.age); //undefined delete a.age; console.log(a.age); //3面试官还问了直接使用函数.prototype和使用Object.create()有什么区别。
答:前者将跟踪已创建的所有实例,后者不会多次初始化实例方法/属性。
3.关于this的指向
function ABC(){
var a = 2;
console.log(a);
this.b = 3;
console.log(this);
console.log(b);
}
ABC();
new ABC();
问题:请说出两次函数调用console打印的值,为什么?使用new和不使用有什么区别?
var a = 2;
console.log(a);
this.b = 3;
console.log(this);
console.log(b);
}
ABC();
new ABC();
问题:请说出两次函数调用console打印的值,为什么?使用new和不使用有什么区别?
答:a和b的值打印都是2和3,但是this的指向不同,前者指向window,后者指向构造函数,并且前者运行完的返回值是undefined,后者是构造函数产生的新对象。
4.vue-router的两个模式你用过哪一个,请说明。(hash模式和history模式)
5.注册登录的具体流程,请简要分析。(涉及cookie的应用)
6.'dssas'---->'asd',简单来说就是字符串的变换(可以考虑先数组去重再逆序)
这道题面试官或许是想听我的很多解决方案,但是我只是说明了数组的方法(例如使用Set去重,转回数组然后reverse逆序,或者使用indexOf lastIndexOf、es6 include和charCodeAt判断)
面试官尝试提示了我有没有字符串的方法,但是我没能给出满意的答案。(ps:若有伙伴知道,麻烦评论区交流一下,谢谢)
7.web性能优化方案,尽可能的给出。
这场面试总体而言,第一次视频面试没有经验,有些许的紧张,当遇到问题卡住的时候我和面试官礼貌微笑,最后闲聊的时候,还问了我为什么没有考研之类的hhh,或许我太菜了。