背景
总结前端学习的经验和知识点,提供给新人学习,已经有前端经验的同学提高.
前端各方向学习规划
加粗的需要重点掌握
原生JS
- 了解JS中的各种对象的含义 (Array、 String、Number、 RegExp、Function、Object、NULL、undefined、NaN)
- 了解JS中的各种运算符 (+、-、/、*、~、!、|、||、&、&&、%、[]、{}、=、>、<)
- 熟悉并学会使用 Array、 String、Number、 RegExp、Function、Object 的原生方法
- 掌握JS Dom相关API,(增、删、替换、复制等)
- 掌握JS对象的简单克隆和深度克隆
- 掌握JS对象的类型转换
- 掌握JS中的各类原生事件,以及事件代理
- 了解JS中的prototype属性的作用
- 熟悉JS中如何实现类,并了解实现继承的几种方法
- 熟悉this在各种场景下的所代表的含义
- 熟悉常用框架的API(代表框架: underscore \ jQuery \ handlebarsjs \ swiper )
- 熟悉JS中的各种设计模式,熟练使用几种设计模式(单例模式、工厂模式等),知道不同场景如何选择使用不同的设计模式。
- 熟悉JS中的模块化(模块化: CMD \ AMD),以及几个代表性的框架的使用 seajs、requirejs、modjs.
CSS
- 了解CSS各种属性的含义
- 了解页面主流布局实现方式. (左右等分,左右定宽中自由,左定宽右自由,12等分页面,自由组合布局)
- 了解CSS sprite的原理和实现方式
- 了解各大主流浏览器的CSS差别和css hack,能写出兼容各类浏览器的CSS.
- 了解CSS font的原理和实现方式.
- 了解CSS3新增的各类属性含义.
- 了解CSS3 flex布局原理.
- 了解CSS3动画原理,会使用一些常用CSS动画
- 了解CSS动画和JS相结合的框架
- 掌握前端动画技巧,熟悉动画原理,知道常用的JS/CSS动画库,了解各类动画库原理并使用
- 掌握sass,less,stylus等css构建语言,并会使用
HTML
- 了解HTML语意化,并知道在合适的位置正确使用
- 了解HTML5新的标签和新特性
- 掌握canvas绘图
- 掌握localStorage本地数据存储
- 掌握HTML5多媒体标签的使用(audio、video)
- 掌握各类标签属性的含义
流程构建工具
- 了解前端为什么需要流程构建工具,要解决的问题是什么
- 掌握 Grunt\ Gulp 这类流程构建工具的原理并使用
- 掌握 webpack \ fis 这类前端集成解决方案的原理并使用
- 知道选择各类流程构建为自己的项目做项目构建
- 熟悉使用babel将es6代码转换到es5,放到浏览器运行
前端框架及扩展
- 了解前端各类开发模式,完成从面向过程编程到面向对象编程的转变
- 了解使用MVC模式开发,代表框架 Backbone.
- 了解使用MVVM模式开发,代表框架 angularjs、React、Vue.
- 熟悉组件化开发优势,知道 React\Vue\angularjs 中几种开发模式.
- 熟悉各类框架的组件编写方式.
- 会使用npm来管理各种前端模块.
- 掌握React-Native, ionic,mui,native.js, phonegap等工具和框架原理
Hybird
- 了解Hybrid App原理
- 了解Hybrid和正常H5页面的区别
- 熟练掌握bridge js的原理以及使用(先熟悉公司的bridgejs)
- 掌握开发调试Hybrid页面的技巧
Node
- 了解Node的运行环境, 熟悉window, Linux/Unix下不同的运行原理
- 了解Node与浏览器JS不同的各类全局变量(process, golbal )
- 了解Node中各类对象的含义(如: Buffer, Events)
- 了解CommonJs规范,熟悉JS模块化的含义
- 知道通过node官网来查看API返回
- 了解并会使用Node常用框架和类库(如: express, sockit.io, koa, co )
- 熟悉nodejs的开发和调试技巧
- 熟悉使用node搭建简单http服务器
- 熟练使用express框架,并使用来搭建网站
- 熟练使用其他第三方库来辅助网站开发
- 会使用npm来管理各种模块,了解需要使用的模块源代码
工具
- 熟练掌握Chrome调试工具.
- 熟悉Photoshop切图, 并会使用Photoshop制作css sprite.
- 熟练使用svn\git等版本管理工具
- 熟悉各类编辑器(vim, sublime, webstorm),并掌握自己最常用编辑器的各类插件扩展(语法高亮、代码提示等插件)
- 熟悉Github的使用,会找到其他人写的优秀代码来借鉴.
- 了解shell常用命令,会配置Nginx.
- 掌握Markdown等语言,熟练编写各类文档文章.
- 熟悉各类平台的辅助开发工具
- 了解前端的前沿技术,会搭建简单demo并运行,会比较各类工具优势劣势,以及使用场景
合作开发
- 了解开发过程中代码流向,由 本地电脑 -> 开发服务器 -> 测试服务器 -> 预发布服务器 -> 线上服务器.
- 掌握浏览器cookie的读写,了解http-only的含义
- 熟悉前后端调试的原理,知道怎么和后端程序员进行调试,知道熟悉怎么本地mock
- 熟悉整个项目的发布部署原理,知道本地代码和编译后代码的区别.
- 了解CDN原理,指导CDN的带来的好处和弊端,会发布代码到CDN.
语言扩展
- 熟练使用 es6 语法,掌握es6语法带来的代码变化
- 了解flash语法以及编写
- 了解php\python\java语法,会使用编写简单功能
- 更深入其他语言语法.
前端书籍推荐
参考如下链接: