const和let是JavaScript中的变量声明关键字。在ES6(ECMAScript 2015)之前,JavaScript只有一个变量声明的关键字- var。ES6引入了const和let来提供更加灵活和严格的变量声明方式。
const声明的变量是一个常量,一旦声明,其值就不能被改变。它具有块级作用域,只在声明的块中有效。例如:
```javascript
const PI = 3.14; // 声明一个常量PI,其值为3.14
PI = 3.1415; // 报错,常量的值不可被改变
```
let声明的变量是一个块级作用域变量,作用范围在声明的块中。它可以被重新赋值,但不能在声明前使用。例如:
```javascript
let age = 20; // 声明一个变量age,初始值为20
age = 21; // 可以重新赋值
console.log(age); // 输出21
console.log(name); // 报错,let变量在声明前使用会报错
let name = "John";
```
const和let的使用可以避免var带来的一些问题,例如变量提升和全局污染。它们的引入使得JavaScript的变量声明更加规范和可控,提高了代码的可读性和可维护性。
需要注意的是,const和let声明的变量在同一个作用域不能重复声明,否则会报错。例如:
```javascript
let x = 10;
let x = 20; // 报错,不能重复声明变量x
const y = 10;
const y = 20; // 报错,不能重复声明常量y
```
总结起来,const用于声明常量,其值不能被改变;let用于声明块级作用域变量,其值可以被重新赋值。它们的引入使得JavaScript的变量声明更加灵活和严格。