MST
星途 面试题库

面试题:TypeScript 中 let 和 const 声明变量在块级作用域中的区别

请描述在 TypeScript 中,使用 let 和 const 在块级作用域内声明变量的行为差异,并举例说明。
12.3万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
  1. 行为差异
    • let声明的变量
      • 可以在块级作用域内声明,并且允许重新赋值。它有块级作用域,避免了在函数作用域中变量提升导致的一些意外行为。例如在if语句块、for循环块等块级作用域内有效。
    • const声明的变量
      • 同样在块级作用域内声明,但是一旦声明并赋值后,就不能再重新赋值(对于基本数据类型而言)。它也具有块级作用域。不过,如果const声明的是一个对象或数组,虽然不能重新赋值整个对象或数组,但对象的属性或数组的元素是可以修改的。
  2. 举例说明
// 使用let
{
    let num = 10;
    console.log(num); // 输出: 10
    num = 20;
    console.log(num); // 输出: 20
}
// console.log(num); // 这里会报错,num超出了其块级作用域

// 使用const
{
    const str = 'hello';
    console.log(str); // 输出: hello
    // str = 'world'; // 这里会报错,const声明的变量不能重新赋值

    const arr = [1, 2, 3];
    arr.push(4);
    console.log(arr); // 输出: [1, 2, 3, 4],可以修改数组元素

    const obj = {name: 'Alice'};
    obj.age = 30;
    console.log(obj); // 输出: {name: 'Alice', age: 30},可以修改对象属性
}