// 使用 var 声明变量
var x = 10;
function testVar() {
var x = 20;
if (true) {
var x = 30; // 这里的 var 变量在函数作用域内,不会创建新的块级作用域
console.log(x); // 输出 30
}
console.log(x); // 输出 30
}
testVar();
console.log(x); // 输出 10
// 使用 let 声明变量
let y = 10;
function testLet() {
let y = 20;
if (true) {
let y = 30; // let 变量具有块级作用域
console.log(y); // 输出 30
}
console.log(y); // 输出 20
}
testLet();
console.log(y); // 输出 10
// 使用 const 声明常量
const z = 10;
function testConst() {
const z = 20;
if (true) {
const z = 30; // const 变量也具有块级作用域,并且不能重新赋值
console.log(z); // 输出 30
}
console.log(z); // 输出 20
}
testConst();
console.log(z); // 输出 10
// 尝试重新赋值 const 变量会报错
// z = 20; // TypeError: Assignment to constant variable.
var:声明的变量具有函数作用域或全局作用域,没有块级作用域的概念。在同一个作用域内可以重复声明相同的变量。let:声明的变量具有块级作用域(即 {} 内),并且不能在同一个块级作用域内重复声明相同的变量。const:声明的常量也具有块级作用域,但一旦赋值后就不能再修改其值。需要注意的是,对于对象和数组等引用类型,虽然不能重新赋值,但可以修改其内部属性或元素。上一篇:js const var let
下一篇:js let var const
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站