Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第2章:基础类型与变量

第2章:基础类型与变量

变量声明(let, const, var)

在 TypeScript 中,变量声明是构建程序的基础。TypeScript 支持 JavaScript 的三种变量声明方式:var、let 和 const,但每种方式的行为和适用场景有所不同。本节将详细介绍它们的区别以及最佳实践。

1. var 声明

var 是 JavaScript 早期的变量声明方式,具有以下特点:

  • 函数作用域:var 声明的变量在函数内部有效,如果在函数外部声明,则成为全局变量。
  • 变量提升:var 声明的变量会被提升到函数或全局作用域的顶部,可以在声明之前访问(值为 undefined)。
  • 可重复声明:同一个作用域内可以多次声明同名变量。
function exampleVar() {
    console.log(x); // 输出 undefined(变量提升)
    var x = 10;
    if (true) {
        var x = 20; // 覆盖外层的 x
    }
    console.log(x); // 输出 20
}

注意:var 容易导致变量污染和逻辑错误,现代 TypeScript/JavaScript 开发中不建议使用。


2. let 声明

let 是 ES6 引入的块级作用域变量声明方式:

  • 块级作用域:let 声明的变量仅在当前代码块(如 {}、if、for 等)内有效。
  • 无变量提升:必须先声明后使用,否则会报错。
  • 不可重复声明:同一作用域内不能重复声明同名变量。
function exampleLet() {
    let y = 10;
    if (true) {
        let y = 20; // 与外层的 y 无关
        console.log(y); // 输出 20
    }
    console.log(y); // 输出 10
}

最佳实践:优先使用 let 替代 var,避免作用域污染。


3. const 声明

const 用于声明常量,具有以下特性:

  • 块级作用域:与 let 相同。
  • 必须初始化:声明时必须赋值。
  • 不可重新赋值:变量引用不可变(但对于对象或数组,属性或元素仍可修改)。
  • 不可重复声明:同 let。
const PI = 3.14;
// PI = 3.1415; // 报错:无法重新赋值

const person = { name: "Alice" };
person.name = "Bob"; // 允许修改属性
// person = { name: "Charlie" }; // 报错:无法重新赋值

最佳实践:默认使用 const,仅在需要重新赋值时使用 let。


4. TypeScript 中的变量声明

TypeScript 会对变量类型进行静态检查:

  • 如果变量声明时未指定类型,TypeScript 会根据初始值推断类型。
  • 显式类型注解可以增强代码可读性。
let age: number = 25; // 显式类型注解
const message = "Hello"; // 推断为 string 类型

5. 总结对比

特性varletconst
作用域函数作用域块级作用域块级作用域
变量提升是否否
重复声明允许禁止禁止
重新赋值允许允许禁止
初始化要求无无必须初始化

推荐实践:

  • 默认使用 const。
  • 需要重新赋值时用 let。
  • 避免使用 var。
Last Updated:: 3/27/25, 10:50 AM