ES6引入了两个新的声明变量的关键字:let和const。他们分别用来声明变量和常量。

  1. let关键字 let关键字用来声明一个变量,其作用域为块级作用域。在使用let声明变量时,变量只在声明的块内部有效,超出该作用域就会被销毁。

示例:

{
  let a = 10;
  console.log(a); // 输出10
}
console.log(a); // 报错,a未定义
  1. const关键字 const关键字用来声明一个常量,常量的值在初始化后不能被修改。和let一样,const也是块级作用域。

示例:

const PI = 3.14;
PI = 22/7; // 报错,常量不可修改
  1. let和const的特点
  • 在同一个作用域内,不允许重复声明同一个变量或常量。
  • let和const声明的变量和常量都不会被提升(hoisting)。
  • 在for循环中使用let关键字可以创建一个独立的变量,避免循环中的变量互相影响。

示例:

for (let i = 0; i < 5; i++) {
  setTimeout(function() {
    console.log(i);
  }, 1000);
}

上面的代码会输出0、1、2、3、4,因为每次循环时都会创建一个新的变量i。

总结: ES6的let和const关键字提供了更好的变量声明方式,能够更好地避免变量提升和变量重复声明的问题,同时也有助于提升代码的可读性和维护性。在编写新代码时,建议尽量使用let和const来声明变量和常量。