声明变量(作用域)
# 声明变量(作用域)
# 1) let ⭐️
let 变量名 = 值;
1
- let 声明的变量可以被多次赋值,例如
let a = 100; // 初始值是 100
a = 200; // ok, 被重新赋值为 200
1
2
2
# 2) const ⭐️
- const 修饰的叫常量,只能赋值一次
const b = 300; // 初始值是 300
b = 400; // error, 不能再次赋值
1
2
2
- const 并不意味着它引用的内容不可修改,例如
const c = [1,2,3];
c[2] = 4; // ok, 数组内容被修改成 [1,2,4]
c = [5,6]; // error, 不能再次赋值
1
2
3
2
3
总结:
const修饰的变量,只能被赋值一次但内容可以修改
# 3) var
var 声明的变量可以被多次赋值(let 也是),例如
var f = 100;
f = 200;
1
2
2
# let 和 var 的区别?
作用域(即范围)不同。
首先,什么是范围?
范围是指:来自我们程序不同部分的变量的可访问性。
- 使用 var 声明时,JavaScript 变量具有全局范围和函数范围。
- 当使用 let 声明变量时,ES6 为 JavaScript 带来了块级范围。
{
var a = "🍉";
let b = "⛳";
}
console.log(a);
console.log(b);
Uncaught ReferenceError: b is not defined // b 没有定义
1
2
3
4
5
6
7
2
3
4
5
6
7
可以看出,我们使用 var 关键字在 block 中定义了变量 “a”,可以全局访问。所以 var 声明的变量是全局的。
但是,我们希望变量在 block 中生效,退出 block 时不可访问。然后,可以使用 ES6 新的块级作用域关键字 let 来声明变量,就像这里的变量 b 一样,会报错说 b 没有定义。
上次更新: 2026/11/5 11:56:09