一面
- 看代码分析结果
const obj = {
fn: function () {
console.log(this)
const f = () => {
console.log(this)
}
f()
}
}
obj.fn() // obj obj
const fn = obj.fn
fn() // window window
- 延伸至箭头函数和普通函数的区别
- 分析结果
{} instanceof Obejct;
[] instanceof Object;
- 手写实现
instanceof
- 实现N叉树是深度优先遍历和广度优先遍历
const tree = {
val: 234,
children: [
{
val: 23455,
children: [
{
val: 236,
children: []
},
{
val: 23455,
children: []
}
]
}, {
val: 234535,
children: [
{
val: 5677,
children: []
},
{
val: 345677,
children: []
}
]
}, {val: 34555, children: []}
]
}
Vue组件通讯
后面都是项目相关
如何实现鉴权
答了JWT、根据权限生成路由表、导航守卫等。
websocket的断线重连机制
答了心跳机制、还有纯前端实现的监听机制。
- 长列表优化方案
- 还有些其他跟项目关联性很强的就不说了。
二面
- 自我介绍
- 讲讲项目的亮点
- 有做过哪些优化方案
- ajax用过吗
用过axios.js,
- 那讲讲axios,你怎么用axios
讲了axios的封装
get和post的区别有哪些
- 语义不同
- 参数放的位置不同
- 参数的长度限制不同
- get有缓存
如果要一个元素不管窗口怎么变换,都固定在右边,你会怎么做?
- 定位
- 浮动
- 弹性盒子
讲讲闭包
分析结果
var a = 1;
function f() {
console.log(a);
var a = 2;
}
f();
- 指出打印结果,这题分析错了
找出以下代码的错误,并改正:
function A(a) {
this.x = a;
var get = function() {
return this.x;
}
this.print = function() {
console.log(get());
}
}
a = new A(1);
a.print();
- 算法题:统计出现次数最多的字母
反问:
- 如果有幸加入贵部门,我承担哪些方面的任务?
- 对我的一个评价(整体还行,但是细节上还有问题)