根据我春招和暑期实习面试的经验来看:
1.JavaScript
js绝对是重中之重,包括数据类型(数据类型转换,类型判断),ES6相关知识,原型与原型链,执行上下文、作用域链、闭包,异步编程实现,对象创建与继承的方式,以及垃圾回收等。
2.计算机网络
主要是体系结构,TCP三次握手,四次挥手、http/https协议的相关内容。
3.算法
一些常用的算法思想: 滑动窗口,hash,回溯,动态规划。如果想进大厂的话,动态规划绝对是最重要的。
刷题的话可以先按照代码随想录按题目类型循序渐进学习,后期时间充裕的话可以刷codetop,按照大厂面试题频率来针对性的学习。
4.HTML/CSS
HTML5,CSS3新特性。
5.前端框架
vue全家桶,以及vue底层原理。
这里推荐一本vue官方团队成员霍春阳编写的《Vue.js设计与实现》这本书讲解了vue框架设计的技术细节与核心设计思想,对我深入理解vue有很大的帮助。比如:
(1)框架设计的核心要素以及框架设计过程中要做出的权衡(命令式与声明式,运行时与编译时,虚拟dom的性能);
(2)构建响应式系统的细节;
(3)三种常见的虚拟dom的diff算法(简单diff,双端diff算法,快速diff算法);
(4)组件化的实现与vue内建组件的原理;
(5)服务端渲染,客户端渲染,同构渲染之间的差异,以及同构渲染的原理。
7.前端工程化与性能优化
git(常用命令),webpack(loader,plugin,打包优化)
CDN, 懒加载,减少回流重绘,节流防抖,图片优化,webpack优化
8.锦上添花
后端技术,数据库技术 ,Linux常见技术等。
总结
总之,在我看来,这些知识都是必备的,没有什么主次之分。前端学习是是很复杂的,想要深入学习以上任何一方面的技术都不是一件容易。这是一个循序渐进,相辅相成的过程。新手可以在快速了解前端三剑客(h5,c3,js)的基础上,趁热打铁,马上选择一个项目进行学习。总之,所有前端项目都是前端交互触发事件,发送请求,获得后端数据,重新渲染view视图,不同的项目,只是在业务逻辑的层面上有区别,面试时业务逻辑讲清楚,这个项目就是当前你学习前端技术的全面综合展示。