JavaScript中的let和const关键字是ES6(ECMAScript 6)新增的变量声明方式,与ES5中的var有着不同的作用和用法。
let关键字用于声明一个块级作用域的变量,只在声明的块内部有效,离开该块后该变量就会被销毁。这可以避免变量污染全局作用域,提高代码可读性和可维护性。
const关键字用于声明一个常量,也具有块级作用域,一旦被声明后就不能再被重新赋值,但是其指向的对象是可以修改的,即对象本身可以被修改,只是其指向不能改变。这种特性对于声明一些固定不变的变量非常有用。
下面是let和const关键字的一些示例代码:
// 使用let关键字声明变量
function example() {
let x = 10; // x只在example函数中有效
if (true) {
let x = 20; // 块级作用域,覆盖了外层的x变量
console.log(x); // 输出20
}
console.log(x); // 输出10
}
example();
// 使用const关键字声明常量
const PI = 3.1415926;
console.log(PI); // 输出3.1415926
// 尝试修改常量的值
PI = 3.14; // 报错:Assignment to constant variable.
// 修改常量指向的对象
const person = {name: 'John', age: 30};
person.age = 31; // 不报错,因为只是修改对象本身,而非修改person指向的地址
console.log(person.age); // 输出31
// 尝试修改常量的指向
person = {name: 'Jane', age: 25}; // 报错:Assignment to constant variable.
除了let和const关键字,ES6还引入了箭头函数、模板字符串、解构赋值、默认参数、展开运算符等语法和特性,极大地丰富了JavaScript的编程能力。