【JS基础】JS中 Let 和 Const 变量区别

在 JavaScript 中,letconst 都是用于声明变量的关键字,但它们之间有一些重要的区别:

  1. 可变性:

    • let 允许在声明之后更改变量的值。这意味着您可以重新为使用 let 声明的变量分配任何类型的值:
    let x = 1;
    x = "text";
    
    • const 用于声明常量,一旦声明了变量,它的值就不能改变。尝试更改使用 const 声明的变量的值将导致错误:
    const x = 1;
    x = "text"; // 抛出错误(TypeError: Assignment to constant variable)
    
  2. 作用域:

    • letconst 都具有块级作用域。这意味着在使用它们声明变量时,变量仅在声明它们的代码块(例如:函数、循环或其他控制结构)中可用。这与使用 var 声明的变量不同,因为它们具有函数作用域:
    if (true) {
          
          
      let x = 1;
      const y = 2;
    }
    console.log(x); // ReferenceError: x is not defined
    console.log(y); // ReferenceError: y is not defined
    
  3. 变量提升:

    • 在执行代码之前,var 声明的变量会被提升到函数作用域的顶部,但它们的初始化仍然保留在原始位置。这意味着,在赋值之前,可以访问使用 var 声明的变量(尽管此时它们的值是 undefined)。相反,letconst 声明的变量也会被提升,但是在被赋值之前,它们将处于临时性死区(TDZ),在这个阶段赋值操作将引发错误。
    console.log(x); // undefined
    console.log(y); // ReferenceError: Cannot access 'y' before initialization
    console.log(z); // ReferenceError: Cannot access 'z' before initialization
    
    var x = 1;
    let y = 2;
    const z = 3;
    

总之,letconst 是为了解决 var 声明的变量提升、作用域等问题而引入的新特性。当您需要一个仅在代码块中可用的且易于更改的变量时,使用 let;当您需要一个仅在代码块中可用且不可更改的变量时,使用 const。这有助于使代码更加健壮且易于理解。

Ref: 机器回答.

猜你喜欢

转载自blog.csdn.net/Mercury_Lc/article/details/131240953