携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
前言
众所周知,前端需要掌握的知识非常杂,知识点涉及的也很广,上文我们讲了基础部分,包括javascript、html、css、网络、浏览器相关知识,本文就进行一个前端进阶部分的知识体系的梳理,帮助大家进行查缺补漏。
大前端 - 进阶部分
工程化相关知识(webpack、vite、Rollup是目前主流的,至少要了解一种),我们以webpack为例
- webpack模块打包原理
- webpack文件监听原理、热更新原理(hmr)
- 常用的loader和plugins
- plugins的原理(事件流框架 Tapable)
tree shaking(通常用于描述移除 JavaScript 上下文中的未引用代码)原理与优化- bundle 分析(bundle analysis)及打包速度优化
- webpack构建过程
- 其他方面,如模块系统、nginx、docker也需要有一定了解
现代主流框架原理的理解
react、angular、vue至少要深入了解一种
- vue2与vue3的对比
- vue与react的对比
- diff算法区别
- 虚拟dom差异
数据结构与算法
要了解一些概念,数据结构,空间复杂度,时间复杂度,最好掌握一些解决问题的模版比如回溯,动态规划,二分查找这种,多刷leetcode
- 数据结构:栈与队列、数组、哈希表
- 链表(移除/添加/翻转/环形)
- 字符串(
暴力、BF、BM、KMP、sunday算法) - 二分查找(注意边界)
- 动态规划(一个规模比较大的问题通过若干规模较小的问题结果来得到)
- 树(前中后序遍历、层序遍历、满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树)
- 递归(确定递归函数的参数和返回值、确定终止条件、确定单层递归的逻辑)
node(进阶一定要有node相关知识)
- v8:
内存机制,垃圾回收,js执行过程 - node原理:
事件循环、高并发、进程线程、Cluster - serverless (少服务器的,亦或是无服务器的,弱化后端和运维概念)
- bff层(
Backend For Frontend) - 缓存方案(内存缓存、redis)
- 爬虫应用、绕过反爬虫(降低频率、代理服务器)
- node框架,比如
koa/express/egg/nestjs也需要掌握一个
结语
- 上一章我们讲了前端基础的知识,本章讲了一些进阶的知识,文中提到的概念对中级前端来说还是挺重要的,和基础知识不一样,我们不仅停留在使用上,还需要理解原理。
- 有了深度,还可以扩充一下我们的广度,比如数据库方面、一些基础设施方向(工程化、组件库、微服务)、lowCode、DevOps平台、存储平台、监控平台,D2C 前端智能化,包括一些跨端、ssr、可视化、操作系统,都可以进行尝试。