前端学习提纲一号

145 阅读7分钟

下列出提纲不懂大家网上查查,答案非常多,都是来自网上收集哈,供大家一起学习,混口饭吃。

模块一 HTML

  1. 环境搭建 Chrome + VSCode + liveserver
  2. 标签的使用场景
  3. 常见HTML5标签 header section,article
  4. doctype、meta、常见属性
  5. 各种表单类型

模块二 CSS重难点

  1. CSS选择器种类、权重、优先级计算、匹配顺序、继承( ID选择器 > 类选择器 > 元素选择器 > 通配选择器)
  2. 块、行的特性 (块占一行,行是相邻元素)
  3. 两种盒模模型(标准盒子与ie盒子,ie margin 不计入,box-sizing 可以选择类型)
  4. 边距折叠 (inline-block ,padding,border来制造间隙,以防止margin折叠)
  5. Flex布局做页面,flex-basis、flex-grow、flex-shrink的计算方法
  6. BFC的概念和应用(前端BFC是指“块级格式化上下文”,实现 display属性,overflow属性,float属性,clear属性)
  7. 定位各种用法
  8. 层叠上下文
  9. Grid布局的使用
  10. 垂直、水平居中的几种实现
  11. 响应式媒体查询
  12. 移动端适配动态rem、动态viewport
  13. 字体图标、svg图标
  14. CSS3常见特效如圆角、阴影、形变、过渡、动画

模块三 ECMAScript

  1. 8种数据类型 (Number、String、Boolean、undefined、object、Null ,Symbol ,bigInt)
  2. var、let、const 区别
  3. 布尔与falsy值
  4. 类型转换
  5. 基础类型和引用类型
  6. 常见运算符(+、+=、==、===、&&、||)
  7. typeof 的值
  8. 运算符结合性和优先级
  9. 流程控制语句
  10. 字符串操作
  11. 0.1 + 0.2 === 0.3与大数相加
  12. 数组操作API
  13. 对象操作
  14. Map、weakMap、Set、Symbol
  15. Math、Date
  16. 函数、箭头函数、递归
  17. 深拷贝
  18. 词法作用域、立即执行函数表达式
  19. 柯里化、回调函数
  20. 正则表达式
  21. ES6常用语法

模块四 ECMAScript重难点

  1. 构造函数、对象、原型,原型链
  2. Class写法
  3. 继承的实现
  4. this、call、apply、bind
  5. 闭包
  6. 回调函数,Promise封装、async、await的使用
  7. 手写Promise.all、Promise.race、Promise.allSettled、Promise.any
  8. 手写Promise并发控制
  9. 任务队列宏任务与微任务,setTimeout、Promise、async、await相关代码输出
  10. v8垃圾回收

模块五 DOM

  1. DOM的获取、创建、删除、修改内容
  2. 属性的操作、JS修改样式、切换class控制样式
  3. onclick与addEventListener,事件模型、冒泡与捕获、事件代理、阻止默认

模块六 BOM

  1. localStorage、Cookie、Session、SessionStorage 区别
  2. navigator判断设备
  3. history、pushState、replaceState,不改变url刷新页面

模块七 前后端交互

  1. 手写node server
  2. Ajax 的使用与Promsie封装
  3. Fetch API的使用
  4. Axios介绍
  5. Mock.js和常见Mock平台
  6. WebSocket
  7. 同源策略、跨域方案、CORS、JSONP

模块八 浏览器渲染机制

  1. DNS解析过程
  2. 浏览器渲染机制
  3. 加载JS、CSS区别和放置位置原因
  4. 重绘、回流概念,和性能优化的关系
  5. script的asnyc和defer

模块九 模块化、项目构建

  1. Node.js之CommonJS规范
  2. Node.js之npm、yarn、package.json、node_modules
  3. ES6 Module
  4. Webpack的日常使用、配置
  5. 常见Loader、Plugin
  6. 手写Webpack Plugin、Loader
  7. Webpack的构建流程
  8. Webpack优化前端的手段
  9. 认识rollup

拓展提升

模块十 HTTP与Web安全

  1. TCP三次握手和四次挥手过程
  2. TCP与UDP区别?TCP 协议怎么保证可靠的,UDP 为什么不可靠?应用场景?
  3. 滑动窗口、拥塞控制
  4. GET和 POST的区别
  5. HTTP状态码有哪些,301和302有什么区别
  6. 浏览器HTTP请求数目限制,怎么解决
  7. 长链接、短链接、如何断开长链接
  8. HTTP 1.0&1.1&2区别
  9. HTTP2特性
  10. HTTP2如何加密
  11. 缓存的处理过程?强缓存/弱缓存?请求头字段和响应头字段,如何设置不用缓存
  12. HTTP和HTTPS有什么区别
  13. HTTPS加密过程、证书是什么
  14. Web安全之HTTPS、XSS、CSRF
  15. 登录鉴权有哪些方式?登录持久化怎么实现的?
  16. JWT,accesstoken、refresh token的作用分别是什么,存放在哪儿,具体流程?

模块十一 性能优化

  1. 性能优化怎么做的(结合资源和代码压缩优化、图片/路由/组件懒加载或者分包、CDN、SSR,HTTP2、浏览器加载和渲染、动画体验等)
  2. CDN原理?CDN优化时如何判断该将哪些包分离
  3. 前端性能衡量指标

模块十二 移动端

  1. px、em、rem、vw、rpx区别
  2. 物理像素、逻辑像素、PPI、设备像素比是什么
  3. 布局视口、视觉视口是什么?meta viewport的设置逻辑
  4. viewport缩放适配与动态rem适配原理
  5. 在项目中使用postcss-pxtorem
  6. 实现0.5px细线
  7. 移动端响应式高清图片解决方案

模块十三 设计模式

  1. 面向对象与组件
  2. 模块模式
  3. 单例模式
  4. 工厂模式
  5. 桥接模式
  6. 观察者模式
  7. 以轮播为例讲解设计模式的优势

模块十四 TypeScript学习

  1. 体验TypeScript
  2. 类型v.s.类
  3. 类型的两个好处
  4. TS支持的JS类型
  5. TS中的any、unknown、void、never、enum、tuple
  6. 如何给不同数据加type
  7. 联合类型与区分联合类型
  8. 交叉类型
  9. 怎么声明div的类型
  10. 泛型是什么
  11. 泛型的实际使用
  12. 重载
  13. 如何用泛型封装网络请求库

模块十五 Node.js 重难点

  1. Node.js 技术架构总结
  2. Node.js 命令行翻译项目
  3. 在Node.js项目中使用TypeScript
  4. 发布NPM
  5. Node.js API 与学习方案
  6. WebStorm&VSCode&Chrome 调试 Node.js
  7. libuv & v8 的功能
  8. EventLoop 介绍
  9. Docker 和 MySQL
  10. Node.js 连接数据库
  11. ORM 之 Sequalize
  12. 一对一、一对多、多对多表设计
  13. 缓存字段、事务、存储引擎 InnoDB
  14. 三个例子了解 Stream
  15. 创建自己的流
  16. 进程、阻塞进程、线程
  17. 创建进程和操作线程
  18. Node.js 的 execFile、spawn 和 fork

模块十六 手写代码

  1. 用Set去重、不用Set如何去重、在原数组上去重
  2. 如何对数组里有相同内容的对象去重
  3. 如何按数组里包含的对象属性字段去重
  4. 数组里的对象包含数组摘录字段构成新数组
  5. 手写深拷贝、处理循环引用的深拷贝
  6. 手写一个trim函数
  7. 手写一个curry函数
  8. 写一个观察者EventBus含emit、on、once、off
  9. 手写一个 instanceof
  10. 手写一个new
  11. 手写一个call和apply
  12. 用call/apply实现bind
  13. 不用call或者apply实现bind
  14. 手写bind考虑new一个bind函数的情况
  15. 手写防抖debounce
  16. 手写节流throttle
  17. 手写forEach、map、filter、reduce
  18. 手写数组拍平flat
  19. 手写原型继承
  20. 手写class继承
  21. 实现字符串大数相加
  22. 手写lazyman函数

模块十七 手写代码

  1. Promise封装一个Ajax函数
  2. Promise封装一个delay函数
  3. 手写Promise.all
  4. 手写Promise.race
  5. 手写Promise.allSettled
  6. 手写Promise.any
  7. 手写并发控制
  8. 宏任务、微任务原理和执行输出顺序
  9. async、await微任务代码执行输出顺序
  10. Promise链式调用与错误处理代码输出
  11. 闭包代码输出分析
  12. this代码输出分析
  13. 手写reactive函数 实现track 和 trigger,分别使用Object.defineProperty 和 Proxy

项目练习

模块十八 学习:Vue3 、Vue Cli4、Vite、组合式API、Vuex、VueRouter

模块十九 完成多个Vue2、Vue3、Typescript、Vite、Tsx、小程序、Uniapp相关项目

模块二十 完成多个React全家桶项目