let、const、var都是用来声明变量的关键字,有些小伙伴初学可能分不清,本文为大家总结一下。
三者之间的区别
1. var声明的变量作用域是函数级别的,而let和const声明的变量作用域是块级别的。块级作用域指的是花括号{}中的区域,例如if语句、for循环、函数等。
2. var声明的变量可以被重复声明,而let和const声明的变量不允许重复声明。
3. var声明的变量可以被修改,而const声明的变量不允许被修改,let声明的变量可以被修改。
4. const声明的变量必须在声明时初始化,而let和var可以不初始化。
5. const声明的变量必须是常量,即不能被重新赋值,而let和var可以被重新赋值。
总结:let和const是ES6新增的声明变量的关键字,它们的作用域是块级的,不允许重复声明,const声明的变量不能被修改,必须在声明时初始化。var是ES5中声明变量的关键字,作用域是函数级的,允许重复声明,可以被修改。
代码示例:
- Using var:
function varExample() {
if (true) {
var x = 10;
console.log(x); // 10
}
console.log(x); // 10
}
varExample();
console.log(x); // 10
- Using let:
function letExample() {
if (true) {
let y = 20;
console.log(y); // 20
}
// console.log(y); // Uncaught ReferenceError: y is not defined
}
letExample();
// console.log(y); // Uncaught ReferenceError: y is not defined
- Using const:
function constExample() {
const z = 30;
// z = 40; // Uncaught TypeError: Assignment to constant variable.
console.log(z); // 30
}
constExample();
// console.log(z); // Uncaught ReferenceError: z is not defined