📜  JavaScript 中 let & const 有什么用?(1)

📅  最后修改于: 2023-12-03 15:16:08.961000             🧑  作者: Mango

JavaScript 中 let & const 的用途

在 JavaScript 中,letconst 是两种用于声明变量的关键字。它们在 ES6(或称为 ECMAScript 2015)中被引入,并提供了一些新的功能和约束,相对于旧的 var 关键字更加灵活和安全。

let 关键字

let 关键字用于声明一个块级作用域的变量。与 var 不同,使用 let 声明的变量只在当前代码块中有效,不会被提升至全局作用域。

{
  let x = 10;
  console.log(x); // 输出 10
}

console.log(x); // 抛出 ReferenceError: x is not defined

let 的作用域仅限于当前代码块(例如,if语句、循环等),允许我们在不同的代码块中使用相同名称的变量,而不会产生冲突。

if (true) {
  let x = 10;
  console.log(x); // 输出 10
}

{
  let x = 20;
  console.log(x); // 输出 20
}

此外,使用 let 声明的变量,可以在同一个作用域中重新赋值,但不能重新声明。

let x = 10;
console.log(x); // 输出 10

x = 20;
console.log(x); // 输出 20

let x = 30;    // 抛出 SyntaxError: Identifier 'x' has already been declared
const 关键字

const 关键字也用于声明块级作用域的变量,与 let 类似,但有一个区别:使用 const 声明的变量必须进行初始化,并且不能重新赋值。

const x = 10;
console.log(x); // 输出 10

x = 20;         // 抛出 TypeError: Assignment to constant variable.

const 声明的变量是常量,一旦初始化后,就不能再修改其值。这种声明方式适用于那些不需要改变的常量,例如固定的配置值、数学常数等。此外,const 也可以用于声明对象和数组,但这并不意味着无法修改对象或数组内部的属性。

const person = {
  name: 'John',
  age: 25
};

console.log(person.name, person.age); // 输出 "John", 25

person.age = 26;
console.log(person.age); // 输出 26

person = {}; // 抛出 TypeError: Assignment to constant variable.
总结
  • let 关键字用于声明块级作用域的变量,在同一作用域内不能重复声明,可以重新赋值。
  • const 关键字用于声明块级作用域的常量,必须初始化且不能重新赋值。当声明对象或数组时,仍然可以修改其内部的属性或元素。

使用 letconst 可以避免变量声明提升和意外的全局变量污染,以及更好地控制变量的修改范围,提高代码的可读性和安全性。