前端知识体系思维导图

绝大部分分类方法、专业术语,出自专业书籍,如《JavaScript 高级程序设计(第 4 版)》、《JavaScript 权威指南(第 7 版)》《CSS 权威指南(第四版)》、《HTML5 权威指南》、《计算机网络(第 5 版)》、《数据结构与算法分析 —— C语言描述》等,欢迎爱读书的小伙伴一起探讨!

思维导图

大纲及重难点文章链接

1. JavaScript
  • 语言核心

    • 语法、类型、语句、关键字、保留字、操作符、全局对象
  • 与浏览器交互

    • DOM:文档对象模型

      • 事件
    • BOM:浏览器对象模型

  • 探索 JS 最强大的特性:函数表达式

    • 函数式编程
  • 面向对象风格编程

    • 对象、类、继承
  • 设计模式
  • JS 执行机制:事件循环原理

    • 使用回调的异步编程
  • 垃圾回收与内存管理
  • 语言标准:ECMAScript

    • 了解 JS 发展的历程
    • 熟悉 ES6、ES7 新的语言标准
  • node.js

    • 模块机制

    • 异步 I/O

    • 异步编程

      • 基于事件的非阻塞 I/O 模型
    • 内存控制

    • 网络编程

  • 类型系统:Typescript
2. HTML
  • HTML 元素

    • 把网页比作一个房子的话,HTML 是砖瓦,CSS 则是装潢。

    • 分类

      • 文档和元数据元素、文本元素、组织内容元素、文档分节元素、制表元素、表单元素、嵌入内容
  • SEO 原理和优化

    • 什么样的 HTML 文档更容易被搜索引擎识别?
  • HTML5

    • 可编程内容

      • canvas
    • 原生多媒体支持

      • video audio...
    • 语义化

  • 元素坐标的获取

    • Element.getBoundingClientRect()

    • 鼠标点击位置

      • const { screenX, screenY, clientX, clientY, offsetX, offsetY } = e
    • 元素自身属性

  • 页面生命周期

    • DOMContentLoaded、load、beforeunload、unload
  • 虚拟列表

    • 原理:减少页面同时呈现的 DOM 节点数量,来减少内存消耗,提高页面性能。
3. CSS
  • 从浏览器渲染进程理解 CSS

    • 回流(reflow)和重绘(repaint)
  • 特指度和层叠

    • 对于 CSS 来说,“层叠” 算是最基本的概念。在这个过程中,有冲突的声明按一定顺序排列,由此确定文档的最终表现。这个过程中还涉及选择符和与其关联的声明的特指度,以及继承机制。
  • 盒模型与布局

    • 布局发展历程:从浮动(float),到弹性盒模型(flex,适用一维),再到栅格布局(grid,适用二维)
    • 定位:相对定位(relative)、绝对定位(absolute)、固定定位(fixed)、粘滞定位(sticky)
    • 盒模型:内边距、边框、轮廓、外边距
  • 视觉格式化
  • 响应式设计
4. 前端框架
  • 框架对比,概要

    • MVC、MVP、MVVM
  • react

    • 学习中..
  • vue

    • 基本使用

      • vue2、vue3、vue-router、vuex、pinia
    • 深入原理

      • 响应式原理
      • 模板编译原理
      • 虚拟 DOM
      • diff 算法
  • Angular

    • 暂无
  • Svelte

    • 一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。
5. 计算机网络
  • 五层模型

    • 应用层

      • DNS 解析
      • HTTP / HTTPS
    • 传输层

      • TCP 连接
    • 网络层

      • IP 协议
      • 路由协议
    • 数据链路层

    • 物理层

  • 从输入 URL 到页面呈现过程中,网络是如何工作的?(理解五层模型)
  • web 开发中需要了解的 HTTP

    • 强缓存与协商缓存

    • CORS 跨域资源共享(一种基于 HTTP 头的机制)

    • HTTP 各个版本主要的差异:HTTP1.0 HTTP1.1 HTTP2 HTTP3

    • 常见 HTTP 状态码

    • HTTPS 协议

    • 范围请求

      • 用于传输大文件或者断点续传
6. 数据结构与算法
  • 数据结构

    • 表、栈、队列

    • 链表

    • 二叉树

      • 深度优先搜索
      • 广度优先搜索
    • 散列表(哈希表)

    • 优先队列(堆)

    • 不相交集(并查集)

  • 算法

    • 排序算法

      • 选择排序、冒泡排序、快速排序、堆排序、桶排序
    • 贪心算法

    • 分治算法

    • 动态规划

      • 背包问题、股票买卖、小偷问题
    • 回溯算法

    • 二分法

    • 复杂度分析

7. 前端工程化
  • 系统化、规范化、模块化
  • 前端模块化
  • 编译和构建工具

    • vite、gulp、webpack、turbopack
    • 万变不离其宗:深入编译原理
  • 代码质量和规范

    • 代码规范:eslint、prettier
    • git 分支管理规范和 git commit 规范
    • 项目规范:文件的组织方式和命名方式
  • 测试

    • 单元测试
    • 端到端测试
  • CI/CD
  • 监控

    • 性能监控、错误监控、用户信息收集
  • 性能优化

    • 网络

    • 内存优化

      • 解决内存泄露问题
    • 运行速度

8. 前端架构
  • 前后端分离

    • 多页面应用

    • 单页面应用

      • 前端路由
  • 微前端

    • 沙箱隔离
9. web 安全
  • CSRF 攻击
  • XSS 攻击
  • 同源策略

    • 跨域资源共享 CORS
    • 普通请求与预检请求具体过程
10. 其他专题
  • WebGL
  • canvas
  • 这么好用的 web API!

    • Observer API:Intersection Observer、Mutation Observer、Resize Observer、Performance Observer
  • WebSocket

附送250套精选项目源码

源码截图

源码获取:关注公众号「码农园区」,回复 【源码】,即可获取全套源码下载链接

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/294162.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Postman的七种断言方法+超时设置!

超时的设置 Settings->General->Request Timeout in ms(0 for infinity):设置请求超时的时间,默认为0 1.postman断言介绍 postman在发送请求后,需要对返回的结果做判断,验证是否符合预期,如状态码、响应头、响应正文等信息…

关于一名资深Java程序员在移动端的进阶之路

今天呢,就借此机会,跟大家聊一聊我的个人职业经历吧! 那年刚毕业 刚毕业时候,入职的第一家公司,进去后,说实话,没有太大成长吧!基本就是让我做一些可有可无的边缘性的工作&#xff…

提升办公效率:掌握批量文件重命名的技巧

在日常生活和工作中,经常要处理大量的文件,如文档、图片、音频等。在这些情况下,会遇到要批量重命名文件的情况。如果一个一个地重命名,不仅耗时,而且效率低下。今天来讲解一些技巧通过批量重命名文件,从而…

【Python学习】Python学习1

目录 【Python学习】Python学习1 1.前言2.Python安装3.PyCharm安装4.PyCharm插件推荐5.参考 文章所属专区 Python学习 1.前言 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发…

go install后仍无法使用全局命令

如下图使用go install命令后人无法使用全局命令 发生这种情况是由于安装Go SDK时,不是一键安装,而是使用者自己区官网下载SDK后配置的环境变量。 使用iso或者应用商城下载就不会出现这种问题。 出现上述的问题是检查GOPATH的环境便利是否配置成功&…

【亲测有效】Win11 卸载MySQL5.7以及安装MySQL8.0.35

目录 一、卸载原来本地的mysql5.7 1.mysql服务部分 1.1停止mysql服务 1.2删除mysql服务 2.卸载 MySQL程序 3.残余文件的清理 3.1删除mysql安装的目录 3.2删除mysql数据存放的目录 3.3删除mysql自定义目录 4.清理注册表 5.删除环境变量配置 二、安装mysql8.0.35 1.…

算法31:针对算法30货币问题进行拓展 + 时间复杂度 + 空间复杂度优化--------从左往右尝试模型

在算法30中,我们说过从左往右尝试模型,口诀就是针对固定集合,值不同,就是讨论要和不要的累加和。 那么对于非固定集合,我们应该怎么做呢? 针对非固定集合,面值固定,张数无限。口诀…

Python中 的函数介绍

函数 在Python中,函数是用来执行某种功能的 函数定义 def function_name(参数列表):代码块[return val]比如 #---------------定义------------- def add_3(num):newnum num3return newnumnum 3 print(add_3(num))函数调用 def add_3(num):newnum num3return newnumnum …

vue3 - Element Plus 切换主题色及el-button hover颜色不生效的解决方法

vue3 - Element Plus 切换主题色及el-button hover颜色不生效的解决方法 GitHub Demo 地址 https://github.com/iotjin/jh-vue3-admin 在线预览 https://iotjin.github.io/jh-vue3-admin/ 如果您想要通过 js 控制 css 变量,可以这样做: // document.do…

【InnoDB数据存储结构】第3章节:区、段、碎片区和表空间

文章目录结构 区、段、碎片区和表空间 什么是区?什么是段?什么是碎片区?什么是表空间? 在上文 InooDB 存储行格式一文中已经大致讲述过,再来回顾一下,直接上图: 名词解释如下: 行…

go构建项目与打包

环境搭建 使用的组件及版本 operator-sdk v1.22.0go 1.20.0 linux/amd64git 1.8.3.1k8s 1.18.5docker 20.10.5 前期配置 安装Git yum install git安装docker yum install docker-ce安装go 官网下载 tar -C /usr/local/ -xvf go1.20.linux-amd64.tar.gz 环境配置 // 将go配置…

【tensorflowflutter】自己写个机器学习模型用在项目上?

背景 拍摄APP项目上线有一阵了,每天的拍摄数据呈现波动上升状态、业务方需要对数据进行加工,如果能有对未来的数据量的预测就好了 。 目标 在端侧展示拍摄数据可视化趋势图等、并能推断数据(选择预测日期) 简单实现个demo gif背…

uniapp自定义顶部导航并解决打包成apk后getMenuButtonBoundingClientRect方法失效问题

需求:要在app上的顶部导航提示哪里添加一些东西进去,用uniapp自带的肯定不行啊,所以自定义了所有的页面的顶部导航,之后自定义后用手机调试发现 uni.getMenuButtonBoundingClientRect()这个方法的top获取不到....网上找了很多种方…

服务注册中心

服务注册中心 注册中心与CAP理论介绍 1.注册中心 服务注册中心是微服务架构中的一个关键组件,它的主要作用是管理服务实例的注册、维护和发现。 是一个中心化的组件来分散的微服务实例的位置和状态。 注册中心有三种角色构成: 服务提供者&#xff1a…

每周一算法:倍增法求最近公共祖先(LCA)

最近公共祖先 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 题目链接 祖孙询问 题目描述 给定一棵包含 n n n 个节点的有根无向树,节点…

知虾shopee数据:为卖家提供了丰富的数据分析工具

使用Shopee的卖家都知道,这个平台为卖家提供了丰富的数据分析工具,帮助他们更好地理解店铺运营状况和市场趋势。这些数据分析工具不仅能够提供数据总览,还包括买家分析、商品排名、分类排名、销售辅导、流量分析、销售结构、行销活动、聊天响…

SpringCloud Alibaba之Nacos配置中心配置详解

目录 Nacos配置中心数据模型Nacos配置文件加载Nacos配置 Nacos配置中心数据模型 Nacos 数据模型 Key 由三元组唯一确定,三元组分别是Namespace、Group、DataId,Namespace默认是公共命名空间(public),分组默认是 DEFAUL…

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化

聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化 目录 聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.聚类分析 | Matlab实现基于RIME-DBSCAN的数据聚类可视化(完整源码和数据) 2.多特征输入&…

HarmonyOS 应用开发学习笔记 状态管理概述

移动端开发,最重要的一点就是数据的处理,并且正确的显示渲染UI。 变量在页面和组件、组件和组件之间有时候并不能实时共享,而有时候,又不需要太多的作用域(节省资源),作用就需要根据不同场景&am…

MQ 发消息的4种姿势

微服务开发中经常会使用消息队列进行跨服务通信。在一个典型场景中,服务A执行一个业务逻辑,需要保存数据库,然后通知服务B执行相应的业务逻辑。在这种场景下,我们需要考虑如何发送消息。 1. 基础版 首先,我们可能会考虑将数据库操作和消息发送放在同一个事务中,以下是伪…