语言核心(Language Core)

JavaScript 的基础语法和核心概念

学习路径

  • 📖 入门:阅读「基础使用」部分,掌握语法规则和基本用法
  • 🚀 提高:阅读「底层原理」部分,深入理解实现机制和原理

📚 知识体系

1. 语法(Syntax)

代码的形式与结构,定义如何编写合法的 JavaScript 程序。

  • 语法概述 — 语法体系导航
  • 变量声明varletconst 的使用和原理
    • 📖 入门:基本语法、特点、使用场景
    • 🚀 提高:引擎处理流程、变量环境、词法环境、TDZ、全局对象关系
  • 控制结构ifforwhileswitch 的使用和原理
    • 📖 入门:条件语句、循环语句的基本用法
    • 🚀 提高:执行流程、循环优化、性能考虑
  • 函数 — 函数声明、表达式、箭头函数的使用和原理
    • 📖 入门:函数定义、调用、参数、返回值
    • 🚀 提高:执行上下文、作用域链、闭包、this 绑定

2. 数据类型(Data Types)

JavaScript 中的数据类型系统。

  • 数据类型概述 — 原始类型与对象类型
    • 📖 入门:基本类型、引用类型、类型判断
    • 🚀 提高:类型转换机制、内存模型、类型系统原理

3. 作用域和闭包(Scope and Closures)

JavaScript 的作用域机制和闭包概念。

  • 作用域和闭包 — 作用域链、块级作用域、闭包概念
    • 📖 入门:作用域概念、闭包的基本使用
    • 🚀 提高:词法作用域、作用域链、闭包原理、内存管理

4. 底层原理(Underlying Mechanisms)

JavaScript 引擎执行代码的底层机制。

  • 底层原理概述 — 底层原理导航
  • 执行上下文 — 执行上下文的创建、变量环境、词法环境
    • 变量环境(Variable Environment)与全局对象的关系
    • 词法环境(Lexical Environment)的结构和作用
    • 执行上下文的生命周期
    • 引擎如何处理 varletconst 声明

🎯 学习路径

入门阶段(基础语法使用)

目标:掌握 JavaScript 的基本语法,能够编写简单的程序。

学习顺序

  1. 变量声明 - 基础使用 — 了解 varletconst 的基本用法
  2. 控制结构 - 基础使用 — 掌握条件语句和循环语句
  3. 函数 - 基础使用 — 学会定义和调用函数
  4. 数据类型 - 基础使用 — 理解基本类型和对象类型
  5. 作用域和闭包 - 基础使用 — 理解作用域的基本概念

学习检查点

  • ✅ 能够使用 letconst 声明变量
  • ✅ 能够使用 ifforwhile 控制程序流程
  • ✅ 能够定义和调用函数
  • ✅ 能够区分基本类型和对象类型

提高阶段(底层原理深入)

目标:深入理解 JavaScript 引擎的实现机制,能够解决复杂问题。

学习顺序

第一阶段:理解执行上下文和调用栈

  1. 执行上下文先学这个,理解执行上下文、变量环境、词法环境、变量提升
  2. 调用栈 — 理解函数调用的管理机制、栈溢出

第二阶段:理解内存管理 3. 内存管理 — 理解栈空间、堆空间、垃圾回收、闭包的内存模型

第三阶段:理解 V8 工作原理 4. V8 工作原理 — 理解编译器和解释器、AST、字节码、JIT

第四阶段:理解事件循环机制 5. 事件循环机制 — 理解消息队列、宏任务、微任务、Promise、async/await

第五阶段:应用到底层原理 6. 变量声明 - 底层原理 — 理解引擎如何处理变量声明、变量环境与全局对象 7. 作用域和闭包 - 底层原理 — 理解作用域链、闭包原理 8. 函数 - 底层原理 — 理解函数执行上下文、this 绑定 9. 控制结构 - 底层原理 — 理解执行流程、循环优化

学习检查点

  • ✅ 能够解释执行上下文的创建和执行过程
  • ✅ 能够理解变量环境与词法环境的区别
  • ✅ 能够解释 var 如何添加到全局对象,let/const 为什么不会
  • ✅ 能够理解变量提升和 TDZ 的底层机制
  • ✅ 能够解释调用栈的工作原理和栈溢出
  • ✅ 能够理解栈空间和堆空间的区别
  • ✅ 能够理解垃圾回收机制
  • ✅ 能够解释闭包的内存模型
  • ✅ 能够理解 V8 的编译和执行流程
  • ✅ 能够理解事件循环机制和任务调度
  • ✅ 能够解释 Promise 和 async/await 的实现原理

📖 阅读建议

对于初学者

  1. 先学语法,再学原理:先掌握基本语法,能够编写简单程序
  2. 循序渐进:按照「入门」部分的学习顺序逐步学习
  3. 多实践:通过编写代码来理解语法规则
  4. 遇到问题再看原理:在遇到问题时,再深入学习「提高」部分

对于进阶学习者

  1. 深入原理:重点学习「提高」部分,理解底层实现
  2. 联系实际:将原理知识应用到实际开发中
  3. 性能优化:理解原理后,能够进行性能优化
  4. 问题排查:遇到复杂问题时,能够从原理层面分析

🔗 相关链接

前置知识

进阶学习

外部资源


javascript 语言核心 语法 作用域 闭包