在JavaScript中声明变量时,有三个关键字:const
,var
和 let
,各有不同的特点。现将其整理,供参考学习。
const
关键字:
常量声明:
- 使用
const
声明的变量是常量,一旦赋值就不能再改变。
const PI = 3.14;
// PI = 3.14159; // 这行代码会报错,因为常量不能被重新赋值
块级作用域:
const
同时也遵循块级作用域的规则。
if (true) {
const name = 'Alice';
console.log(name); // 在这个块内,可以访问name
}
// console.log(name); // 这行代码会报错,因为name在这里不可见
let
关键字:
变量声明:
- 使用
let
声明的变量是可以修改的。
let count = 10;
count = count + 1; // 可以重新赋值
块级作用域:
- 同样遵循块级作用域规则。
if (true) {
let age = 30;
console.log(age); // 在这个块内,可以访问age
}
// console.log(age); // 这行代码会报错,因为age在这里不可见
var
关键字:
变量声明:
- 使用
var
声明的变量存在变量提升,可以在声明之前使用。
console.log(score); // undefined,因为变量提升,但未赋值
var score = 80;
函数作用域:
var
声明的变量只有全局作用域和函数作用域,没有块级作用域。
if (true) {
var city = 'New York';
console.log(city); // 可以在块内部访问var声明的变量
}
console.log(city); // 'New York',var声明的变量在外部依然可见
总结:
const
用于声明常量,一旦赋值就不能修改,而且也需要在声明时就初始化它的值。let
用于声明可变的变量,允许重新赋值,也需要在声明时初始化它的值。var
是旧版本JavaScript中使用的变量声明方式,存在变量提升,且没有块级作用域的概念,容易造成变量污染和意外的全局变量声明。