---
title: "前端开发初阶"
date: 2018-12-29
lastmod: 2020-01-05
weight: 1
type: docs
icon: #
description: "初阶路线图"
# search related keywords
keywords: ["前端开发","初阶"]
---

## 初阶路线图

{{< embed-pdf-view url="/images/frontend.pdf" >}}



### 前端基础

- 客户端
  - 浏览器
    - Chrome
    - Safari
    - Firefox
  - APP
    - 小程序
    - WebView
- 网络
  - Domain
  - TCP/IP
  - DNS
  - HTTP
- 服务端
  - WebServer
    - Nginx
    - Apache HTTP Server
    - CDN
  - 服务端语言
    - PHP
    - Java
    - Golang
  - 数据库
  - 操作系统
- 行业标准
  - W3C/WHATWG
    - CSS标准
    - HTML、XHTML、XML、HTML5标准
    - DOM标准
    - SVG标准
    - 小程序标准
- ECMA-TC39
  - EcmaScript标准
  - JavaScript标准

### 研发工具

- 编辑器
  - Sublime Text
  - Visual Studio Code
  - WebStorm
- 调试预览
  - 浏览器调试工具
    - FireBug
    - Chrome DevTools
  - 本地服务
    - file://
    - http://、SimpleHTTPServer
  - 在线服务
    - CodePen
    - JSFiddle
  - 网络调试
    - hosts、Switchhosts
    - Debugging Proxy、Charles、wireshark
- 图片编辑器
  - Photoshop
  - Sketch
- 版本管理
  - Git
  - SVN

### HTML

- 元素
  - 根元素
    - 主根元素 html
    - 分区根元素 body
  - 元数据
    - base、head
  - 内容分区
    - header、footer
  - 内容
    - 块级内容 div、dir
    - 文字内容 a、b、strong
  - 图片和多媒体
    - audio、img
  - 内嵌内容
    - iframe、object
  - 脚本
    - canvas、script
  - 表格
    - table、tbody
  - 表单
    - button、input
  - 可交互元素
    - menu、menuitem
- 属性
  - 常用属性
    - class、id、style、title
  - 全局属性
- 事件
  - 窗口事件
  - 表单事件
  - 键盘事件
  - 鼠标事件
  - 多媒体事件
- 编码
  - URL编码
  - 语言代码
  - 字符集

### CSS

- 语法
  - @规则
  - 层叠
  - 注释
  - 解释器
  - 继承
  - 简写
  - 优先级
  - 值定义
  - 单位与取值类型
- 选择器
  - 元素选择器
  - 选择器分组
  - 类选择器
  - ID 选择器
  - 属性选择器
  - 后代选择器
  - 子元素选择器
  - 相邻选择器
  - 伪类
  - 伪元素
- 定位
  - position
  - top、left、bottom、right
  - z-index
- 布局
  - Box Model
  - FlexBox
  - Grid
  - Column
- 样式
  - 背景
  - 文本
  - 轮廓
  - 列表
- 动画
  - Animation
  - transition
- 应用
  - 响应式
    - em、vh/vw、%
  - 自适应
    - @media、rem

### JavaScript

- 语法
  - 值、变量
  - 数据类型
    - 基本类型
    - 类型判断
    - 类型转换
  - 流程控制
  - 运算（表达式、运算符）
    - 数学
    - 比较
    - 逻辑
  - 函数
    - 函数声明
    - 函数表达式
    - 回调函数
    - 箭头函数
- 数据类型深入
  - 原始类型的方法
  - 数字类型
  - 字符串
  - 数组
  - 数组方法
  - Iterable object（可迭代对象）
  - Map and Set（映射和集合）
  - WeakMap and WeakSet（弱映射和弱集合）
  - Object.keys、values、entries
  - 解构赋值
  - 日期和时间
  - JSON序列化、反序列化
- 对象
  - 属性/字面量
  - in 、for...in
  - 对象引用
  - 深拷贝、浅拷贝
  - Symbol
  - 垃圾收集机制
  - this
  - new
  - Optional chaining '?.'
  - 类型转换Symbol.toPrimitive
  - Property flags、descriptors
  - getters、setters
- 函数
  - 调用栈
  - 递归、尾递归
  - arguments、params spread
  - 作用域、闭包
  - var、变量提升
  - IIFE、匿名自执行函数
  - NFE、函数命名表达式
  - 箭头函数
  - new Function
  - setTimeout、setInterval
  - call、apply、bind
  - 部分施用、柯里化
- 原型
  - 原型链、继承
  - F.prototype
  - Object.prototype
- 类
  - extend 继承
  - 方法重载
  - 构造函数
  - Super、[[HomeObject]]
  - 静态属性、静态函数
  - 私有属性、私有函数
  - 混合、Mixins
- 异步流程控制
  - Callback
  - Promise
    - Promises/A+、Promisification、Thenable
  - async/await
  - generator
  - iterable
- 模块化
  - commonJS
  - amd、cmd、umd、es-module
- 异常捕获
  - try...catch...finally
  - throw
  - Error

### 浏览器

- DOM
  - DOM Tree
  - DOM Node
  - DOM Query
  - DOM Properties
  - DOM Modify
  - Styles
  - Coordinates、Element Scrolling
  - DOM Events
    - UI Event
    - Bubbling and Capturing
    - Event Delegate
- 浏览器API
  - location
  - history
  - navigator
  - Default Actions
    - event.preventDefault()
  - Form
    - change、focus、blur、submit
- 网络
  - XHR
  - Fetch
  - JSONP
  - WebSocket
- 权限
  - Cookie
  - Session
  - OAuth
  - SSO
  - JWT
- 安全与隐私
  - Content Security Policy (CSP)
  - CORS
  - XSS
  - CSRF
  - MITM
  - Samesite
- 兼容性
  - Can I Use
  - polyfill
  - shim
  - browserslist
  - Autoprefixer
- 开发者工具
  - 设备模式
  - 元素面板
  - 控制台面板
  - 源代码面板
  - 网络面板
  - 性能面板
  - 内存面板
  - 应用面板
  - 安全面板


## 相关学习资源

- [MDN Web 入门](https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web)
- [友好的 Web 开发初学者教程](https://www.internetingishard.com/)
- [Web 技术路线图框架](https://github.com/w3c/web-roadmaps)
- [Web 开发人员的路线图](https://github.com/kamranahmedse/developer-roadmap)
- [Web 初学者开发教程](https://github.com/microsoft/Web-Dev-For-Beginners)
- [The Modern JavaScript Tutorial](https://javascript.info/)
- [JavaScript权威指南](https://book.douban.com/subject/10549733/)
- [点到面学习 flex](https://www.yuque.com/linxz/flex)
- [Chrome 开发者工具](https://developers.google.cn/web/tools/chrome-devtools/)
- [W3C官网](https://www.w3.org/)
- [WHATWG官网](https://whatwg.org/)
- [ECMA-TC39](https://github.com/tc39)
- [JavaScript: the first 20 years](https://dl.acm.org/doi/10.1145/3386327)
