javascript - 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
解决方案
是的,它确实 -const
是一个块范围的常量声明关键字,这意味着在您的第二个示例中,v
仅在{}
循环中for
定义。将其更改为var
- 具有函数范围(它仅存在于其封闭函数中) - 意味着它可以在for
循环之外访问(因为它不是函数)。
推荐阅读
- javascript - 如何创建固定覆盖
反应原生 - opengl - 通过缓冲区将场景信息传递给显卡以渲染反射
- css - 是否可以在没有 JS 且没有元素重复的情况下构建这种布局 - 只有 CSS?
- json - 平面 CSV 到 D3.js 的嵌套 JSON 树
- javascript - 在 Ext.Window 内的 iframe 中设置超时
- javascript - 检查js函数中未定义的参数
- python - 在 concat 数据帧和 json-normalize 时面临“未正确调用数据帧构造函数”错误
- go - 分叉/执行。没有这样的文件或目录退出状态 1
- ios - 无需编译即可使用的扩展
- reactjs - Material UI 的 withTheme() 从 ref prop 中隐藏组件