目录
[ES6 模块](#ES6 模块)
[DOM 操作](#DOM 操作)
[DOM 查询](#DOM 查询)
[DOM 操作](#DOM 操作)
[BOM 操作](#BOM 操作)
[浏览器 API](#浏览器 API)
[Fetch API](#Fetch API)
[JSON 处理](#JSON 处理)
[JSON 操作](#JSON 操作)
[Date 对象](#Date 对象)
[Math 对象](#Math 对象)
[ES6+ 新特性](#ES6+ 新特性)
基础语法特性
变量和数据类型
- 变量声明:var、let、const
- 原始数据类型:number、string、boolean、null、undefined、symbol、bigint
- 引用数据类型:object、array、function
运算符
- 算术运算符:+、-、*、/、%、**
- 比较运算符:
==
、===
、!=、!==、<、>、<=、>= - 逻辑运算符:&&、||、!
- 赋值运算符:=、+=、-=、*=、/=等
- 位运算符:&、|、^、~、<<、>>、>>>
- 条件运算符:? :
- 展开运算符:...
- 可选链运算符:?.
- 空值合并运算符:??
控制流程
条件语句
- if...else 语句
- switch...case 语句
- 条件表达式
循环语句
- for 循环
- while 循环
- do...while 循环
- for...in 循环
- for...of 循环
跳转语句
- break 语句
- continue 语句
- return 语句
- throw 语句
函数特性
函数定义
- 函数声明
- 函数表达式
- 箭头函数
- 立即执行函数 IIFE
函数参数
- 默认参数
- 剩余参数
- 参数解构
- arguments 对象
作用域和闭包
- 全局作用域
- 函数作用域
- 块级作用域
- 词法作用域
- 闭包机制
对象和面向对象
对象操作
- 对象字面量
- 属性访问和设置
- 属性描述符
- 对象方法
- 计算属性名
面向对象特性
- 构造函数
- 原型和原型链
- 继承机制
- Class 语法
- super 关键字
- 静态方法和属性
对象内置方法
- Object.create()
- Object.assign()
- Object.keys()
- Object.values()
- Object.entries()
- Object.freeze()
- Object.seal()
数组操作
数组基础
- 数组字面量
- 数组索引操作
- 数组长度属性
- 多维数组
数组方法
- 添加/删除:push、pop、shift、unshift、splice
- 查找:indexOf、lastIndexOf、find、findIndex、includes
- 遍历:forEach、map、filter、reduce、some、every
- 排序:sort、reverse
- 转换:join、concat、slice
字符串处理
字符串操作
- 字符串字面量
- 模板字符串
- 字符串拼接
- 字符串属性和方法
字符串方法
- 查找:indexOf、lastIndexOf、search、match
- 截取:substring、substr、slice
- 替换:replace、replaceAll
- 转换:toLowerCase、toUpperCase、trim
- 分割:split
正则表达式
正则基础
- 正则表达式字面量
- RegExp 构造函数
- 模式匹配
- 修饰符:g、i、m、s、u、y
正则方法
- test() 方法
- exec() 方法
- match() 方法
- replace() 方法
错误处理
异常处理
- try...catch 语句
- try...catch...finally 语句
- throw 语句
- Error 对象及其子类
错误类型
- SyntaxError
- ReferenceError
- TypeError
- RangeError
- URIError
异步编程
回调函数
- 异步回调
- 回调地狱问题
Promise
- Promise 对象
- then、catch、finally 方法
- Promise.all()
- Promise.race()
- Promise.resolve()
- Promise.reject()
async/await
- async 函数
- await 表达式
- 异步错误处理
模块系统
ES6 模块
- import 语句
- export 语句
- 默认导出和命名导出
- 动态导入
CommonJS (Node.js)
- require() 函数
- module.exports
- exports 对象
DOM 操作
DOM 查询
- document.getElementById()
- document.querySelector()
- document.querySelectorAll()
- getElementsByClassName()
- getElementsByTagName()
DOM 操作
- 元素创建和删除
- 属性操作
- 样式操作
- 内容操作
- 事件处理
事件系统
事件处理
- addEventListener()
- removeEventListener()
- 事件对象
- 事件冒泡和捕获
- 事件委托
常见事件
- 鼠标事件:click、mouseover、mouseout
- 键盘事件:keydown、keyup、keypress
- 表单事件:submit、change、input
- 窗口事件:load、resize、scroll
BOM 操作
浏览器对象
- window 对象
- location 对象
- navigator 对象
- history 对象
- screen 对象
浏览器 API
- 定时器:setTimeout、setInterval
- 弹窗:alert、confirm、prompt
- 本地存储:localStorage、sessionStorage
- Cookie 操作
网络请求
XMLHttpRequest
- 创建请求对象
- 发送请求
- 处理响应
- 状态码处理
Fetch API
- fetch() 函数
- Response 对象
- Request 对象
- Headers 对象
JSON 处理
JSON 操作
- JSON.parse()
- JSON.stringify()
- JSON 格式验证
日期和时间
Date 对象
- 日期创建
- 日期格式化
- 日期计算
- 时间戳操作
日期方法
- getTime()、setTime()
- getFullYear()、setFullYear()
- getMonth()、setMonth()
- getDate()、setDate()
数学运算
Math 对象
- 数学常量:Math.PI、Math.E
- 基础运算:Math.abs()、Math.pow()、Math.sqrt()
- 取整函数:Math.floor()、Math.ceil()、Math.round()
- 随机数:Math.random()
- 三角函数:Math.sin()、Math.cos()、Math.tan()
类型检测和转换
类型检测
- typeof 操作符
- instanceof 操作符
- Object.prototype.toString()
- Array.isArray()
类型转换
- 显式转换:Number()、String()、Boolean()
- 隐式转换规则
- parseInt()、parseFloat()
ES6+ 新特性
解构赋值
- 数组解构
- 对象解构
- 参数解构
新数据结构
- Set 和 WeakSet
- Map 和 WeakMap
- Symbol 类型
迭代器和生成器
- Iterator 接口
- Generator 函数
- yield 表达式
代理和反射
- Proxy 对象
- Reflect 对象
内存管理
垃圾回收
- 引用计数
- 标记清除
- 内存泄漏防范
性能优化
- 作用域链优化
- 避免全局变量
- 事件处理器管理
调试和测试
调试工具
- console 对象方法
- debugger 语句
- 浏览器开发者工具
性能监控
- console.time()
- performance API
- 内存使用监控
≡