JavaScript学习路径
-
基础知识
- 变量与数据类型
- 字符串
- 数字
- 布尔值
- 空值(null)
- 未定义(undefined)
- 对象
- 数组
- 函数
- 操作符
- 算术操作符
- 比较操作符
- 逻辑操作符
- 赋值操作符
- 条件(三元)操作符
- 控制结构
- if…else
- switch
- for循环
- while循环
- do…while循环
- break与continue
- 函数
- 函数声明
- 函数表达式
- 箭头函数
- 参数
- 默认参数
- 返回值
- 作用域与变量提升
- 全局作用域
- 局部作用域
- 块级作用域
- let与const
- 错误处理
- try…catch
- throw
- finally
- 变量与数据类型
-
高级概念
- 原型与继承
- 构造函数
- 原型链
- 继承
- 闭包
- 高阶函数
- 函数作为参数
- 函数作为返回值
- Promise与异步编程
- Promise基本概念
- Promise链式调用
- Promise.all与Promise.race
- async/await
- 模块化
- CommonJS
- AMD
- UMD
- ES6模块
- 原型与继承
-
DOM操作
- 选择元素
- getElementById
- getElementsByClassName
- querySelector
- querySelectorAll
- 属性与样式操作
- 获取与设置属性
- 获取与设置样式
- 类名操作
- 添加类名
- 移除类名
- 切换类名
- 节点操作
- 创建节点
- 插入节点
- 替换节点
- 删除节点
- 事件处理
- 事件绑定
- 事件冒泡与捕获
- 选择元素
-
AJAX
- XMLHttpRequest对象
- GET请求
- POST请求
- 异步与同步
- JSON数据处理
-
ES6及更新特性
- let与const
- 解构赋值
- 字符串模板字面量
- 对象字面量扩展
- 数组方法
- forEach
- map
- filter
- reduce
- some
- every
- 展开运算符
- Rest参数
- Set与Map
- Proxy与Reflect
- Symbol类型
- 类(Class)
- 模块导入与导出
-
浏览器API
- window对象
- location对象
- history对象
- navigator对象
- screen对象
- setTimeout与setInterval
- localStorage与sessionStorage
-
性能优化
- 避免全局查找
- 减少DOM操作
- 使用事件代理
- 缓存计算结果
- 延迟加载
- 防抖与节流
-
单元测试
- Jest
- Mocha
- Jasmine
-
工程化与构建工具
- Node.js基础
- npm与包管理
- Webpack
- Babel
- Gulp
- ESLint
- Prettier
-
前端框架
- React
- Angular
- Vue