6

2020年春节前后面了 滴滴(外派),好未来,跟谁学,中信银行,猫眼,新东方,深度好奇,偶数科技还有几家小公司。

起点

前端经验并不丰富,面了一些公司,总结一下记得的内容也希望能帮到大家。

建议

1.刷面试题的过程是很好的学习和反思的过程,甚至觉得比我之前半年多的开发过程学到的东西还多(惭愧),所以去刷题吧。
2.面试官很注重你对之前项目的理解,去回顾一下之前做的东西,梳理出你遇到和解决的重点问题。
3.自信一点,你完全可以表现地超出你本来的实力。福利:如果你(男生)遇见一个妹子面试官,你的表达和自信能起到更大的作用哈。

First

1.继承的几种方式

   1.2这几种继承方式分别有什么优缺点
    https://github.com/mqyqingfeng/Blog/issues/16
   1.3 继承时你用到了new,知道new怎么实现的吗?
    1.  开辟一个块内存,创建一个空对象
    2.  执行构造函数,对这个空对象进行构造
    3.  给这个空对象添加proto属性

2.http和https的区别
3.说一下promise。

   3.1 多个promise同时运行怎么做到。
   3.2 promise.all时有一个promise fail了怎么处理。
   3.3 手写实现一个promise.all

4.说一下提高性能的方法

   4.1说一下路由懒加载
   4.2说一下vue-lazyload
   4.2.1说一下里面的节流怎么做的,能写出来吗

5.说一下Vue的原理(说了一下object.defineProperty的set和get,观察订阅者模式)
6.说一下从输入网页到加载成功发生了什么

   6.1reflow和repaint介绍一下
   6.2说一下BFC 
   6.3说出几种状态码的含义。

7.讲一下闭包

    7.1你用过闭包吗?

8.讲一下跨域和解决方法
9.移动端适配问题
10.几种cookie的区别和作用
11.用es5和es6写一个类
12.vue加载的过程
13.vue-router的实现原理以及hash模式和history的区别等等

Second

1.了解promise吗?

1.1说一下promise的原理。(手写了一个不太成功的promise)

2.说几种继承

2.1这几种继承都有什么缺点
2.2实现组合继承

3.说一下flex的常用属性
4.说一下BFC

4.1BFC的内边距折叠

5.Js执行顺序的问题,涉及到promise,setTimeout

5.1了解宏任务和微任务吗

6.说一下Vue的原理

6.1Vue是怎么watch数组的
6.2computed和watch的区别
6.3怎么遍历一个对象里的所有的值(答了for in)
    6.3.1 for in 和for of的区别
    6.3.2 如果想用for of遍历对象怎么做
    6.3.3如果不想让对象被遍历怎么做(object.defineProperty里设置)

7.Vue3.0和2.0有什么区别

7.1怎么watch数组的

8.跨域
9.防抖和节流
10.隐式类型转换是怎么转换的?(em,怎么转换的,)
11.手写ajax
12.手写了以下代码问输出结果,涉及到执行顺序,宏任务,微任务

new  Promise(function(resolve, reject) {
    console.log(0)
    setTimeout(function() {
        console.log(2)
    }, 300);
    console.log(1)
    resolve('result')
}).then((res)=>console.log(res))

0 1 result 2

关于数据结构喝算法的问题(非计算机科班,这方面有点薄弱,需要再学习很多)

1.数组的去重以及各种操作

1.1.找到数组中出现次数最多的元素

2.斐波那契数列,涉及到递归的优化
3.数组的排序
4.关于时间复杂度和空间复杂度的计算
5.堆、栈,树的了解

此次面试经历了疫情前,疫情爆发两个过程,总算是最后的结果还可以。个人的总结:

1.要多写博客
2.多写代码,自己去试
3.对拿来用的东西要有思考,动脑子
4.对写过的功能和遇见的问题进行总结和改进
5.找对学习的平台和对象


张长长
67 声望4 粉丝