const关键字用于声明一个不可变的常量,一旦被赋值后就不能再更改。而var和let关键字用于声明变量,var声明的变量具有全局作用域,而let声明的变量具有块级作用域。
示例代码如下:
```javascript
// 使用const声明常量
const PI = 3.14159;
// 尝试更改常量的值将会引发错误
// PI = 3.14; // Error: Assignment to constant variable.
// 使用var声明变量
var x = 10;
// var声明的变量具有全局作用域
if (true) {
var y = 20;
}
console.log(y); // 20
// 使用let声明变量
let a = 30;
// let声明的变量具有块级作用域
if (true) {
let b = 40;
}
// console.log(b); // Error: b is not defined
// var 与 let 在循环中的作用域不同
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i); // 输出 5 五次
}
1000);
}
for (let j = 0; j < 5; j++) {
setTimeout(function() {
console.log(j); // 输出 0 1 2 3 4
}
1000);
}
```
从示例代码可以看出,const声明的常量不可更改,而var和let声明的变量作用域不同,let声明的变量具有块级作用域,可以避免var声明变量在循环中可能出现的问题。在实际开发中,建议尽量使用const和let来声明常量和变量,避免全局变量污染和意外修改变量的问题。