📜  let 和 const lol 有什么区别 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:43:53.114000             🧑  作者: Mango

let 和 const 的区别

在 TypeScript 中, let 和 const 都是用来声明变量的关键字,它们之间有一些不同点。

let

let 是用来声明可变变量(Mutable Variables)的,也就是说,通过 let 定义的变量可以重新赋值。下面是一个例子:

let x = 10;
x = 20; //可以重新赋值

let 声明的变量有一个特殊的作用域,称为块级作用域(Block Scope)。它只在当前块中起作用,并且在块外是不可访问的。下面是一个例子:

function test() {
  let x = 10;
  if (true) {
    let x = 20; //在新的块级作用域中声明一个新的变量
    console.log(x); //20
  }
  console.log(x); //10
}

test();

上面的代码中,我们在 if 语句块中声明了一个新的 x 变量,并将其值赋为 20。在语句块外的 x 变量的值仍然是 10。

const

const 是用来声明不可变变量(Immutable Variables)的,也就是说,通过 const 定义的变量不可以重新赋值。下面是一个例子:

const x = 10;
x = 20; //TypeError: Assignment to constant variable.

let 相同,const 声明的变量也有块级作用域。下面是一个例子:

function test() {
  const x = 10;
  if (true) {
    const x = 20; //在新的块级作用域中声明一个新的变量
    console.log(x); //20
  }
  console.log(x); //10
}

test();

上面的代码中,我们在 if 语句块中声明了一个新的 x 变量,并将其值赋为 20。在语句块外的 x 变量的值仍然是 10。

总结

letconst 的主要区别在于可变性(Mutability),也就是说,let 定义的变量是可变的,而 const 定义的变量是不可变的。除此之外,它们还有一个作用域的区别,let 的作用域是块级的,而 const 也是一样。