在函数中声明 const 不会抛出错误?

Declaring const in a function do not throw error?

为什么我们可以在函数中声明一个const并多次调用该函数而不会出错

Uncaught SyntaxError: Identifier 'newTab' has already been declared

每次调用这个函数都是在创建一个新的常量?

代码说明:

function foo() {
  const newTab = [123]
  console.log(newTab);
}

谢谢各位大侠指教:)

每个函数调用都会创建一个新块(由于javascript是解释型语言并逐行运行代码,因此每个函数调用都会创建一个本地执行上下文,恰好是函数所在的位置gets invoked) in memory (最后一个将在垃圾收集阶段被删除),因此 const newTab 的每个实例都与前一个实例分开。由于定义 const 元素的性质,它似乎应该抛出一个错误,但由于最后一个被删除并且一个新的在新的内存块中,所以它不会抛出任何错误。

注意:article and this video可能会帮助您了解有关本地执行上下文的更多信息。

function foo() {
        const newTab = [123];
        console.log(newTab);
      }
      foo();
      foo();
      foo();

实际上你的代码工作正常,我看不到任何错误,你怎么称呼它?每次调用 const newTab 都将在所有变量隔离的本地执行上下文中创建