首页 > 解决方案 > const 是否像 let 一样创建本地范围?

问题描述

说我有这个:

for(const v of [1,2,3]){
  console.log(v);
}

const v = 5;
console.log(v);

这是否像那样为 v 创建了一个独特的本地范围let?以上运行良好。

这失败了,正如我们可能预期的那样:

for(const v of [1,2,3]){
  console.log(v);
}

console.log(v);  // v is not defined, but if we used var instead of const, it would be defined

标签: javascript

解决方案


是的,它确实 -const是一个块范围的常量声明关键字,这意味着在您的第二个示例中,v仅在{}循环中for定义。将其更改为var- 具有函数范围(它仅存在于其封闭函数中) - 意味着它可以在for循环之外访问(因为它不是函数)。


推荐阅读