【2018】面试复习大纲
今年可能会去面试,对具体要做什么准备怕一下想不全, 特此列个大纲来一点点复习。
面试岗位: 高级前端开发、前端技术leader或类似岗位
技术:
JS
基本类型:
(1)值类型:数值、布尔值、null、undefined。 (2)引用类型:对象、数组、函数。
函数: function与箭头函数
http://www.javascriptkit.com/javatutors/javascriptarrowfunctions.shtml
this指针
ES6、ES7特性
作用域
闭包
变量提升
var, let, const
常用API: Array、Data、String、Math、Object等基础类型或window下的常用API
HTML5 API:
localStorage\SessionStorage
闭包
事件模型: 包括事件执行顺序、原理,异步、同步事件特点、区别等。
http://www.ruanyifeng.com/blog/2014/10/event-loop.html
事件捕获、冒泡
阻止冒泡
阻止默认行为
异步:ajax, Promise, async await
性能优化
重绘、重排(和浏览器相关)
常用优化原则或建议
减少 DOM操作、缓存需要多次操作的DOM对象
浏览器兼容性
移动端经验
跨域
浏览器缓存(cache)
原型链: prototype、 constructor
unit test
加载js方式: commonJS, AMD,CMD
SEO
页面内容优化
url优化
函数式编程
纯函数、不变性
柯里化(curry)
ramda
面向对象
ES5下原生js实现类
继承: prototype和其他方式
框架:
react:
生命周期
高阶组件
数据管理: redux
SEO
同构
相关工具/包:
npm
eslint
webpack
babel(compiling ES6\ES7)
mocha
nodejs
express
websocket
长连接
文件读写
事件模型:同步、异步
安全(由于一直做内部系统。 在EPAM做的系统也不涉及运维,所以 这块知识一直是个空白)
XSS
CSRF
click jacking
算法:
常用算法的实现方式, 如不用循环遍历数组、字符串的方法
快速排序、二分法
冒泡
面向对象
封装、多态、继承
CSS:
预编译器: LESS\SASS
后置编译器: postcss、 autoprefixer
盒子模型
行内、块元素(display)
position
flex
CSS3特性
OOCSS
响应式: @media 媒体查询
某些具体问题:
元素在屏幕上居中
相关工具、包
stylelint
HTML
语义化标签: header、section等
SEO相关
viewport(移动端)
http:
1.1
常用http code
2.0
长连接
单请求多次response
辅助工具:
源码管理:git、github
持续集成: jenkins
IDE: submit text、 VS code
设计模式:
单例
适配器
装饰器
外观
发布订阅
观察者
软件工程:
开发流程:
敏捷开发: scrum
TDD
BDD
管理相关:
沟通:
团队建设、激励
先了解团队,特长、兴趣、需求,再根据实际情况尽量满足。关注团队成长
冲突(矛盾)管理
上面不同小节可能有重复、如SEO、重绘重排。无所谓
现在先列出大的范围,之后慢慢补充。
未完待续。。。