2019年的前端面试总结
总结一下2019年找工作时遇到的前端面试题 : 主要集中在vue方面,css,js, es6/7/8;vue 的面试题将会在另一篇文章上发布
先来看一下css 方面的面试题:
1.三栏布局的实现方式有哪几种
2.vh,vw 和%的区别
3.对BFC规范的理解
4.css书写规范
5.实现水平垂直居中
再来看一下js 方面的面试题:
1.经常会问道的问题 this的指向 基本就是以下几种情况:
- 在方法中,this指向的是所有者对象
- 在单独使用时,this指向的是全局对象
- 在函数中,this指向的是全局对象
- 在函数的严格模式下,this指向的是undefined
- 在事件中,this指向的是接收事件的元素
- 在使用call()和apply()这样的方法可以将this的引用到任何对象
2.数组去重的几种实现方法
- indexof
- sort()排序后,相邻元素进行比较
- 利用includes()检查时候有元素
- set [...new Set(arr)]
3.call(),apply()和bind()的区别
call、 bind、 apply 这三个函数的第一个参数都是this的指向对象,第二个参数差别就来了:
call 的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面obj.myFun.call(db,'江西', ..., 'string')。
apply的所有参数都必须放在一个数组里面传进去。
bind除了返回函数以外,它的参数和call 一样。
4.什么是原型,为什么使用原型,原型链的结构 (这个大家自行百度)
5.普通函数和箭头函数的区别
- 箭头函数是匿名函数,不能作为构造函数,不能使用new
- 箭头函数不绑定arguments,取而代之用rest参数...解决
- 箭头函数不绑定this,会捕获其所在的上下文的this值,作为自己的this值
- 箭头函数通过 call() 或 apply() 方法调用一个函数时,只传入了一个参数,对 this 并没有影响。
- 箭头函数没有原型属性
- 箭头函数不能当做Generator函数,不能使用yield关键字
6.防抖函数和节流(这个大家自行百度)
7.js的继承方法有哪些?为什么要继承(这个大家自行百度)
最后来看一下es6/7/8方面的面试题:
1.你在项目中有用到那些es6/7/8的方法
2.Array新添了那些方法
3.async 和 await 有用过吗简述一下
4.promise的三种状态
5.promise.all和promise.race的区别
6.数组扁平化 (flat方法)
先暂时更新这么多,有一些问题没有答案的大家可以自行白度,vue面试题会集中写一篇文章,到时候会将链接沾到这里