返回
深入浅出 JavaScript 变量和作用域
前端
2023-09-08 01:51:16
变量和作用域:JavaScript 编程的基石
揭开变量的面纱
变量是 JavaScript 中存储和操纵数据的容器。它代表一个特定的内存地址,用于存放数据。在 JavaScript 中,使用 let
或 const
声明变量。
基本类型值
基本类型值直接存储在变量中,包括以下 5 种类型:
- Undefined: 未初始化的变量或未声明的值。
- Null: 显式表示空值。
- Boolean: 逻辑值,可以为 true 或 false。
- Number: 数值,包括整数和浮点数。
- String: 一系列字符。
引用类型值
引用类型值不直接存储在变量中,而是存储变量的内存地址。它指向实际的数据,包括以下类型:
- Object: 包含属性和方法的集合。
- Array: 有序集合,用于存储同类型元素。
- Function: 可执行代码块。
- Symbol: 唯一且不可变的值。
作用域的魅力
作用域定义了变量可以访问的代码范围。JavaScript 中有两种主要的作用域:
- 全局作用域: 可以在脚本的任何地方访问的变量。
- 局部作用域: 只能在特定代码块(如函数)内访问的变量。
作用域链确保变量可以在其作用域或父作用域内访问。当变量在局部作用域中声明时,它首先会查找其父作用域。如果无法找到,则会逐层向上查找,直到全局作用域。
实战示例
// 全局作用域
let globalVariable = "你好,世界!";
// 局部作用域
function sayHello() {
// 局部变量
let localVariable = "你好,JavaScript!";
// 访问全局变量
console.log(globalVariable); // 输出: "你好,世界!"
// 访问局部变量
console.log(localVariable); // 输出: "你好,JavaScript!"
}
// 调用函数
sayHello();
// 尝试访问局部变量(会报错)
console.log(localVariable); // 报错: ReferenceError: localVariable is not defined
在这个示例中,全局变量 globalVariable
在全局作用域中声明,因此可以在任何地方访问。局部变量 localVariable
在函数 sayHello()
中声明,只能在该函数内访问。当试图在全局作用域中访问局部变量时,会出现错误。
总结
掌握 JavaScript 中的变量和作用域概念至关重要,因为它构成了该语言编程的基础。通过理解基本类型和引用类型之间的差异,以及作用域如何影响变量的可见性,开发者可以构建健壮且可维护的应用程序。