1、HTML、CSS基础、JavaScript语法基础。学完基础后,可以仿照电商网站(例如京东、小米)做首页的布局。
2、JavaScript语法进阶。包括:作用域和闭包、this和对象原型等。相信我,JS语法,永远是面试中最重要的部分。
3、jQuery、Ajax等。jQuery没有过时,它仍然是前端基础的一部分。
4、ES6语法。这部分属于JS新增的语法,面试必问。其中,关于 promise、async 等内容要尤其关注。
5、HTML5和CSS3。要熟悉其中的新特性。
6、canvas。
7、移动Web开发、Bootstrap等。要注意移动开发中的适配和兼容性问题。
8、前端框架:Vue.js和React。这两个框架至少要会一个。入门时,建议先学Vue.js,上手相对容易。但无论如何,同时掌握 Vue 和 React 才是合格的前端同学。
9、Node.js。属于加分项,如果时间不够,可以先不学,但至少要知道 node 环境的配置。
10、自动化工具:构建工具 Webpack、构建工具 gulp、CSS 预处理器 Sass 等。注意,Sass 比 Less 用得多,gulp 比 grunt 用得多。
11、前端综合:HTTP协议、跨域通信、安全问题(CSRF、XSS)、浏览器渲染机制、异步和单线程、页面性能优化、防抖动(Debouncing)和节流阀(Throtting)、lazyload、前端错误监控、虚拟DOM等。
12、编辑器相关。Sublime Text 是每个学前端的人都要用到的编辑器。另外,前端常见的IDE有两个:WebStorm 和 Visual Studio Code。WebStorm 什么都好,可就是太卡顿;VS Code就相对轻量很多。个人总结一下:用VS Code 的人越来越多,用 WebStorm 的人越来越少。
13、TypeScript(简称TS)。ES 是 JS 的标准,TS 是 JS 的超集。TS属于进阶内容,建议把上面的基础掌握之后,再学TS。
摘自:为什么初期的前端工程师工资都很高? - 差点兔了的回答 - 知乎
- 命令行、Git
- HTML5、CSS3、BFC、定位、层叠上下文、边距折叠、浮动布局、flex布局、grid布局、兼容
- 渲染机制、白屏、FOUC、异步加载、重绘与回流、8种数据类型、运算符优先级、箭头函数、声明前置、函数作用域、块级作用域、作用域链、IIFE、递归、递归优化、柯里化、字符串数组方法(ES5/6)、引用类型、深浅拷贝、正则表达式(贪婪、分组、前瞻)
- 同步与异步、任务队列、微任务与宏任务、节流、防抖、原型、class、原型链、Object.create、组合继承、class继承、call/apply/bind、Object.assign、Mixin、Getter/Setter、闭包、模块封装、高阶函数
- DOM操作、DOM事件流(冒泡、捕获、阻止默认、passive、事件代理)、Cookie/Session鉴权机制、
- Http:状态码、缓存、Session、JWT、Auth2机制、XSS、CSRF原理
- XMLHttpRequest2、fetch、Ajax封装、Comet、Websocket、Mock.js、curl、异步、回调、Promise、async/await、同源策略、JSONP、CORS、服务器中转
- CommonJS规范、NPM、Yarn、开发Package、模块化、IIFE、Parcel.js、ES6的原生Module、NPM Scripts与工程化
- Webpack、手写loader与Plugin、Babel、编译原理
- Vue、Vue Router、Vuex、ElementUI/其他
- React、create-react-app、css modules、styled-component、React Hooks、React Router、Redux/Mobx、Antd/其他
- 小程序、云开发
- 网站性能优化、构建优化、TypeScript
手写代码要求
- 封装ajax
- 封装bind
- 封装防抖节流
- 手写Promise
- 手写React Hooks
- 手写Webpack Loader、Plugin
- 手写MVC、MVVM、React、模块加载器