文法是指编程语言中规则的集合,描述了语言的语法结构和组成部分。它定义了程序的基本构成单元,以及这些单元如何合法地组合在一起。文法通常分为 词法 和 语法 两部分,它是理解编程语言的基础。

1. 词法(Lexical)

词法定义了语言中的基本构件(例如关键字、标识符、运算符、分隔符、常量等),这些构件是编程语言的基本单位,可以视作词汇表。

  • 关键字:如 ifelseforwhile 等,这些是语言保留的特殊单词,用于定义控制结构或其他特殊语法功能。
  • 标识符:用于命名变量、函数、类等实体的名称,如 myVariablesumgetName 等。
  • 运算符:如算数运算符(+-*/)或逻辑运算符(&&||!)。
  • 分隔符:如括号(()[]{})和逗号(,),用于界定代码块或分隔表达式。

2. 语法(Syntactic)

语法则定义了如何将这些词法单位组合成更大的结构(如语句、表达式、函数、类等)。语法规则决定了编程语言的句法结构,表示合法程序的结构。

  • 表达式:由操作符和操作数组成的语法单位,例如 a + bx > 10
  • 语句:完成某种操作的最小单位,通常包括变量声明、控制流等,如 let x = 5; 或 if (x > 10) { ... }
  • 函数:用来执行特定任务的代码块,通常包含定义参数、执行计算、返回值等语法。
  • 类与对象:在面向对象编程语言中,类是对象的蓝图,定义了属性和方法,而对象则是类的实例。
├── 文法/
│   ├── 词法/
│   │   ├── 关键字.md
│   │   ├── 标识符.md
│   │   ├── 运算符.md
│   │   └── 分隔符.md
│   ├── 语法/
│   │   ├── 表达式.md
│   │   ├── 语句.md
│   │   ├── 函数.md
│   │   ├── 类.md
│   │   ├── 模块.md
│   │   └── 控制结构.md
│   ├── 类型系统/
│   │   ├── 基本类型.md
│   │   ├── 引用类型.md
│   │   ├── 类型推断.md
│   │   └── 类型转换.md
│   └── 语言特性/
│       ├── ES6新特性.md
│       ├── 模板字符串.md
│       ├── 解构赋值.md
│       ├── 箭头函数.md
│       └── 扩展运算符.md