文章

一面

  1. 看代码分析结果
  const obj = {
fn: function () {
console.log(this)
const f = () => {
console.log(this)
}
f()
}
}

obj.fn() // obj obj

const fn = obj.fn
fn() // window window

  1. 延伸至箭头函数和普通函数的区别
  2. 分析结果
{} instanceof Obejct;
[] instanceof Object;

  1. 手写实现instanceof
  2. 实现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: []}
]
}

  1. Vue组件通讯

  2. 后面都是项目相关

  3. 如何实现鉴权

    答了JWT、根据权限生成路由表、导航守卫等。

  4. websocket的断线重连机制

答了心跳机制、还有纯前端实现的监听机制。

  1. 长列表优化方案

https://1425816423.gitbook.io/my-knowledge-base/wo-de-jing-yan-zong-jie/wo-de-chang-lie-biao-you-hua-fang-an

  1. 还有些其他跟项目关联性很强的就不说了。

二面

  1. 自我介绍
  2. 讲讲项目的亮点
  3. 有做过哪些优化方案
  4. ajax用过吗

用过axios.js,

  1. 那讲讲axios,你怎么用axios

讲了axios的封装

  1. get和post的区别有哪些

    1. 语义不同
    2. 参数放的位置不同
    3. 参数的长度限制不同
    4. get有缓存
  2. 如果要一个元素不管窗口怎么变换,都固定在右边,你会怎么做?

    1. 定位
    2. 浮动
    3. 弹性盒子
  3. 讲讲闭包

  4. 分析结果

var a = 1;
function f() {
console.log(a);
var a = 2;
}
f();

  1. 指出打印结果,这题分析错了
找出以下代码的错误,并改正:
function A(a) {
this.x = a;

var get = function() {
return this.x;
}

this.print = function() {
console.log(get());
}
}

a = new A(1);
a.print();

  1. 算法题:统计出现次数最多的字母

反问:

  1. 如果有幸加入贵部门,我承担哪些方面的任务?
  2. 对我的一个评价(整体还行,但是细节上还有问题)