JavaScript let 和 const


JavaScript let 和 const

在ES6之前,JavaScript只有全局变量和函数作用域,但是在ES6之后,我们可以使用let和const来声明块级作用域。

let

let声明的变量具有块级作用域,它声明的变量只能在当前代码块中使用,而不能在外部访问。在同一个作用域中不能重复声明同一个变量。

用法:

let variableName = value;

示例:

let x = 10;
console.log(x); // Output: 10

if (true) {
  let x = 20;
  console.log(x); // Output: 20
}

console.log(x); // Output: 10

在上面的代码中,我们首先声明了一个变量x并赋值为10,然后在if语句块中声明一个新的变量x并赋值为20,最后打印变量x值,我们可以看到输出分别为10和20。

const

const用来声明常量,它的值在声明后不可修改,和let一样,const也有块级作用域。在同一个作用域中不能重复声明同一个常量。在声明时必须初始化,否则会报错。

用法:

const constantName = value;

示例:

const PI = 3.14;
console.log(PI); // Output: 3.14

PI = 3.141592653; // Error: Assignment to constant variable

if (true) {
  const PI = 3.141592653;
  console.log(PI); // Output: 3.141592653
}

console.log(PI); // Output: 3.14

在上面的代码中,我们首先声明了一个常量PI并赋值为3.14,然后尝试给PI重新赋值会报错,因为常量的值不可改变。然后在if语句块中声明一个新的常量PI并赋值为3.141592653,最后打印变量PI值,我们可以看到输出分别为3.141592653和3.14。

let vs const

  • 在使用let时,变量的值可以改变;
  • 在使用const时,变量的值不可改变。

使用const声明常量比使用let更安全,因为它可以避免在代码中意外地更改变量值。但是,在实际编码中,使用letconst可以更好地组合使用,能够更好的表现出变量和常量的作用。