记录一下年初的面试。
大大小小面试了10来家公司,基本都拿到了offer,两年多经验,记录一下,算是对这段时间的一个小结。
HTML + CSS
1.移动端适配(rem实现)
2.flex布局
3.position常见状态
4.清除浮动常用方法(BFC)
5.box-sizing与盒模型的理解
6.BFC理解与用途
7.两栏、三栏布局
8.移动端1px处理
9.垂直居中
10.HTML5的离线储存
原生js
1.js原型的理解
2.js闭包的原理与应用(函数节流、防抖以及区别)
3.面向对象的理解与封装组件
4.事件模型、事件代理与自定义事件
5.call/apply/bind的作用区别,兼容性处理
6.常见跨域的处理(node转发)
7.ajax的状态与兼容性处理
8.常见的设计模式
9.前端性能优化
10.客户端缓存方法
11.常见兼容性处理
12.MVC/MVVM概念与区别
13.webview与客户端的通信(JSBridge)
ES6
1.let/const 的用法和区别
2.promise 的状态、封装和api
3.箭头函数this的指向问题
4.class的用法和继承
VUE
1.vue的生命周期
2.vue封装组件的步骤
3.vue父子组件兄弟组件之间的通信
4.vue与客户端的通信
5.axios特点与封装形参
6.vue的深度监听
7.vue rooter原理与#和空的区别
8.vue虚拟DOM的理解和实现
9.vue双向数据绑定的理解和实现
10.data与computed区别
11. vue生命周期,每个周期做了什么
12. Vue中$nextTick()用法
13. Vue中$set的用法
14. vue数组改下标无法捕捉到原因是什么
http
1.常见的http状态码(200、301、302、304、400)
2.http缓存头取值
工具
1.webpack配置多文件入口
2.git命令行
3.gulp常用插件
模块化
1.AMD/CMD/commonJS的了解与应用
2.exports和module.exports、export与export default的区别
算法
1.快排
2.冒泡排序
3.数组去重
4.浅克隆和深克隆(包括es6写法)
5.取出数组第二大值
性能优化
1.单页面按需加载怎么解决
2.重排和重绘的区别
其他
1.怎么理解spa
2. 移动端点击穿透原因及解决方案
3. Promice和setInterval异步执行顺序
4. 首页白屏出现问题及解决方案
5. jQuery插件写法$.fn.extend()和$.extend()
6. $.isArray()方法实现方法