以下是关于 JavaScript 的核心知识点分类整理,涵盖基础到进阶内容,适合系统学习或复习:


一、基础语法

  1. 变量声明

    • var(函数作用域,存在变量提升)
    • let(块级作用域,可重新赋值)
    • const(块级作用域,不可重新赋值)
  2. 数据类型

    • 原始类型NumberStringBooleannullundefinedSymbol(ES6)、BigInt(ES2020)
    • 引用类型Object(包括 ArrayFunctionDateRegExp 等)
    • 类型检测:typeofinstanceofObject.prototype.toString.call()
  3. 运算符

    • 算术、比较、逻辑、赋值、三元运算符
    • 严格相等(===)与宽松相等(==)的区别
  4. 流程控制

    • 条件语句:if/elseswitch
    • 循环:forwhiledo...whilefor...of(遍历可迭代对象)、for...in(遍历对象属性)

二、函数与作用域

  1. 函数定义

    • 函数声明、函数表达式、箭头函数(=>
    • 参数:默认参数、剩余参数(...args
  2. 作用域链

    • 词法作用域(静态作用域)
    • 闭包:函数能访问其定义时的词法环境
  3. 高阶函数

    • 函数作为参数或返回值(如 mapfilterreduce
  4. this 指向

    • 默认绑定(全局)、隐式绑定(方法调用)、显式绑定(call/apply/bind)、new 绑定
    • 箭头函数无自己的 this,继承外层作用域的 this

三、对象与原型

  1. 对象创建

    • 对象字面量、构造函数、Object.create()
    • 属性描述符:writableenumerableconfigurablevalue/get/set
  2. 原型链

    • __proto__(非标准)与 Object.getPrototypeOf()
    • prototype 属性(构造函数特有)
    • 继承:原型链继承、构造函数继承、组合继承、ES6 类继承
  3. ES6 类

    • class 语法糖、extendssuper、静态方法(static

四、异步编程

  1. 回调函数

    • 嵌套回调与回调地狱
  2. Promise

    • 状态(pendingfulfilledrejected
    • 方法:.then().catch().finally()Promise.all()Promise.race()
  3. Async/Await

    • 基于 Promise 的语法糖,用 async 声明函数,await 暂停执行
  4. 事件循环(Event Loop)

    • 宏任务(setTimeoutsetInterval、I/O)与微任务(Promise.thenMutationObserver

五、DOM 与 BOM 操作

  1. DOM 操作

    • 节点获取:getElementByIdquerySelectorquerySelectorAll
    • 节点修改:createElementappendChildremoveChildinnerHTML/textContent
    • 事件监听:addEventListener、事件委托
  2. BOM 操作

    • window 对象:locationhistorynavigatorlocalStorage/sessionStorage

六、ES6+ 新特性

  1. 变量解构

    • 数组解构:const [a, b] = [1, 2]
    • 对象解构:const { name } = { name: 'Alice' }
  2. 模板字符串

    • 反引号(`)与插值表达式(`${var}`
  3. 扩展运算符

    • 数组/对象展开:[...arr]{...obj}
  4. 模块化

    • import/export(ES6 模块)与 require/module.exports(CommonJS)
  5. 其他特性

    • Set/Map 数据结构
    • Proxy(代理对象)、Reflect(反射)
    • 生成器函数(function*)与 yield

七、错误处理

  1. try/catch/finally
  2. 抛出错误throw new Error('message')
  3. 自定义错误类型:继承 Error

八、性能优化

  1. 防抖(Debounce)与节流(Throttle)
  2. 虚拟滚动(Virtual Scrolling)
  3. 代码分割(Code Splitting)与懒加载
  4. Web Worker(多线程处理)

九、工具与生态

  1. 包管理工具npmyarnpnpm
  2. 构建工具WebpackViteRollup
  3. 代码规范ESLintPrettier
  4. 测试框架JestMochaCypress

十、进阶主题

  1. 内存管理:垃圾回收机制、内存泄漏场景
  2. 设计模式:单例、观察者、发布-订阅等
  3. TypeScript:静态类型检查、接口、泛型
  4. WebAssembly:运行高性能代码

以上知识点可根据实际需求深入学习,建议结合实践(如开发小项目)巩固理解。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐