2018面试总结第三轮
百信银行
一面:前端负责人,前端小组9人+。
HTML5新增的内容(标签和JS部分)
离线存储
CSS3新增的单位和内容
CSS实现hover A元素修改B元素的宽度
CSS定位元素绝对水平垂直居中
CSS选择器权重。10个Class权重大于单个ID
ES6新增的内容。
ES6的Class和new function的区别
http和https的区别; http1和http2的区别
找到数组里面最大的元素
FIS的资源映射的实现原理。map source
webpack的配置项,webpack的打包流程
Vue的生命周期
Vuex的方法和模块化
对小程序的了解
对node的理解
shell脚本命令的使用。
二面
webpack的配置项,懒加载,按需加载,插件和loader的区别,引用资源的方式,热加载原理。
Vue事件监听实现原理(手写),生命周期(交叉),data和methods和computed区别,Vue双向绑定,组件通信,vuex如何实现和流程图
import和export的实现原理
scroll事件的弊端和requestAnimationFarme
定时器和promise,promise(resolve,reject)的执行顺序
数组打平([1,2,[3,[4,5]]] => [1,2,3,4,5])
es6里的async和await
koa和expree的中间件的区别
node的依赖包如何查看。
找到数组中html指定节点的包裹层级并返回。
promise的实现原理。线程和进程。
三面
问了下目前使用的技术栈,离职的原因,什么时候可以离职,问了下负责的业务,使用的技术栈(小程序之类)。
四面
问了下学校,换工作的原因,使用的技术栈balabala之类的,十分钟左右。填了信息表格和期望薪资交给HR了。
(一面没面好凑合,后面的都是走过场)
雪球
一面
做了一套面试题,整体简单。
cookie,sessionStorage,localStorage三者之间的区别,存储字符串。
隐式类型转换。 // 1+2+3+'4' = '64'
写一个方法判断两个object对象是否相等
函数声明提升
sticky定位使用js方式实现
Vue生命周期,以及mounted和beforemounted的区别,created钩子干了什么
CSS盒子模型
时间冒泡,事件绑定
事件委托的优势(减少绑定次数,新增元素可以绑定事件),事件源
ES6 数组常用方法(find,findIndex,filter)数组遍历foreach,map,for of
let,var,const区别
koa框架的洋葱模型
二面
Vue的computed和watch钩子的区别,computed是如何实现的(双向绑定)
性能优化实践
ssr实践
vue循环时候的key的问题,使用唯一ID绑定
对虚拟DOM节点的理解
webpack的打包流程
treeShaking原理,按需加载
node的中间件加载顺序
作业帮
一面
html5和css3新增的内容
实现数组的归并
git回滚
...记不太清了
二面
es的异步编程实现方案(定时器,promise,回调地域,generator)
变量提升
git reset和revert的区别
...记不太清了
三面
具体的变量提升
实现一个抽奖程序(金额固定,人数固定,奖金随机,尽可能分配完成奖金)
...记不太清了
四面hr面
谈了具体的薪资和福利。
(整体感觉良好,但是关于数组的算法没有写好)
头条
1. http301,302,304的区别
2.cookie的属性 科普链接
3.跨域的解决方案以及cors跨域的详细过程 科普文章
4.防抖和节流的含义以及实现
5.crsf跨站攻击的含义以及原理
6.区分是否是跨域,给出了具体的实例
7.实现一个ES6的字符串和变量解析函数
8.数组乱序