JavaScript 中 var、let、const 的核心区别与实战应用
要理解 const、var、let 的区别,我们可以从 作用域、变量提升、可重复声明、可修改性 这几个核心维度展开。
一、核心概念铺垫
首先明确两个基础概念:
- 函数作用域:变量只在声明它的函数内部可访问(
var是函数作用域)。 - 块级作用域:变量只在声明它的
{}内部可访问(let/const是块级作用域,{}包括if/for/while/ 普通代码块)。 - 变量提升:JS 引擎在执行代码前,会把变量声明 '提升' 到当前作用域顶部(但赋值不会提升)。
二、逐个拆解与对比
1. var(ES5 语法)
var 是 ES5 中声明变量的方式,特性如下:
- 作用域:函数作用域(无块级作用域)。
- 变量提升:声明会被提升,且提升后默认值为
undefined。 - 可重复声明:同一作用域内可重复声明同一个变量,后声明的会覆盖前一个。
- 可修改:声明后可随意修改值。
示例代码:
// 1. 函数作用域(无块级作用域)
if (true) {
var a = 10;
}
console.log(a); // 输出 10(a 跳出了 if 的 {},因为 var 无块级作用域)
// 2. 变量提升
console.log(b); // 输出 undefined(声明提升了,赋值没提升)
var b = 20;
// 3. 可重复声明
var c = 30;
var c = 40;
console.log(c); // 输出 40(后声明的覆盖前一个)
// 4. 可修改
var d = 50;
d = 60;
.(d);


