变量(Variables): 在JavaScript中,变量用于存储和引用数据。使用var、let或const关键字可以声明变量。变量可以保存各种类型的值,并且可以根据需要进行修改。
- 声明变量: 在使用变量之前,需要先声明它。可以使用关键字
var、let或const来声明变量,具体取决于变量的作用域和可变性。
var:用于声明一个函数作用域或全局作用域的变量。它存在变量提升的特性,即在变量声明之前就可以使用该变量。let:用于声明一个块级作用域的变量。const:用于声明一个块级作用域的常量。常量在声明后不能再修改其值。
function example() {
var x = 10; // 使用 var 声明的变量具有函数作用域
let y = 20; // 使用 let 声明的变量具有块级作用域
if (true) {
var x = 30; // 同一函数作用域内的重复声明,会修改已存在的变量 x
let y = 40; // 不同块级作用域内的重新声明,创建了一个新的变量 y
console.log(x); // 输出 30
console.log(y); // 输出 40
}
console.log(x); // 输出 30
console.log(y); // 输出 20,块级作用域内的 y 不影响函数作用域内的 y
}
example();
- 赋值和重新赋值: 声明变量后,可以通过赋值操作符
=将一个值赋给变量。赋值可以是初始值,也可以是变量的新值。
let age; // 声明一个变量 age = 25; // 赋予变量初始值 let name = "John"; // 同时声明和赋值一个变量 age = 30; // 重新赋值给变量
- 变量命名规则: 变量名是标识符,需要遵循一些命名规则:
- 变量名可以包含字母、数字、下划线
_和美元符号$。 - 变量名必须以字母、下划线或美元符号开头,不能以数字开头。
- 变量名区分大小写,
age和Age是不同的变量。 - 变量名应该具有描述性,能够清晰地表达变量的含义。
let myVariable; // 合法的变量名 let _score; // 合法的变量名 let $totalAmount; // 合法的变量名 let 123abc; // 非法的变量名,以数字开头 let my-variable; // 非法的变量名,包含连字符
- 数据类型和类型推断: JavaScript是一种动态类型的语言,变量的数据类型是根据赋予的值自动推断的。
let name = "John"; // 字符串类型 let age = 25; // 数字类型 let isStudent = true; // 布尔类型
- 变量作用域: 变量的作用域指的是变量在代码中可访问的范围。
- 全局作用域:在任何地方都可以访问的变量。
- 函数作用域:在函数内部声明的变量,只能在函数内部访问。
- 块级作用域:在
{}内部声明的变量,只能在{}内部访问(使用let或const声明的变量)。
let globalVar = 10; // 全局作用域
function myFunction() {
let localVar = 20; // 函数作用域
console.log(globalVar); // 可以访问全局变量
console.log(localVar); // 可以访问本地变量
}
myFunction();
console.log(globalVar); // 可以访问全局变量
console.log(localVar); // 错误,无法访问函数内部的局部变量