目录
1. var
2. let
3. const
4. 区别
在 JavaScript 中,变量的声明是一项基本的操作,而在 ES6(ECMAScript 2015)之后,引入了两个新的关键字 let
和 const
,使得变量声明的方式更加灵活和可控。下面介绍 JavaScript 中三种不同的变量声明方式:var
、let
和 const
,并分析它们的特点和区别,同时提供一些示例,以便更好地理解。
1. var
var
是 JavaScript 中最早的变量声明方式,它具有以下特点:
- 函数作用域:
var
声明的变量在整个函数体内都是可见的。 - 变量提升:在函数或全局作用域中,
var
声明的变量会被提升到作用域的顶部。
function example() {console.log(x); // undefinedvar x = 10;console.log(x); // 10
}
example();
2. let
let
是 ES6 新增的关键字,用于声明块级作用域的变量,具有以下特点:
- 块级作用域:
let
声明的变量只在当前代码块内部有效。 - 不存在变量提升:
let
声明的变量不会被提升到代码块的顶部。
{console.log(y); // 报错:Uncaught ReferenceError: Cannot access 'y' before initializationlet y = 20;console.log(y); // 20
}
3. const
const
也是 ES6 新增的关键字,用于声明不可变(常量)的变量,具有以下特点:
- 块级作用域:
const
声明的变量也只在当前代码块内部有效。 - 声明后不可再赋值:
const
声明的变量必须在声明时进行初始化,并且在初始化后不可再进行赋值。
const PI = 3.14;
PI = 3.14159; // 报错:Uncaught TypeError: Assignment to constant variable.
4. 区别
var
声明的变量具有函数作用域,而let
和const
声明的变量具有块级作用域。var
声明的变量存在变量提升,而let
和const
声明的变量不存在变量提升。const
声明的变量必须在声明时进行初始化,并且不能再被重新赋值。