javascript - 为什么我能够使用'let'在for循环内再次初始化和分配变量?
问题描述
for(let i = 0; i < 5; i++) {
console.log(i); //outputs 0, 1, 2, 3, 4
}
这里↓有疑问
for(let i = 0; i < 5; i++) {
let i = 2;
console.log(i); //output 2 five times
}
为什么我能够初始化和分配i
变量两次,因为我知道我们只能初始化和分配let
一次声明的变量,然后可以重新分配另一个值。例如:
let j = 5;
let j = 6;
console.log(j); //error > Identifier 'i' has already been declared
let k = 5;
k = 6;
console.log(k); // output 6
解决方案
它类似于以下形式:
let j = 5;
{
let j = 6;
console.log(j); //6
}
console.log(j); //5
推荐阅读
- c# - 单击时按钮不更改标签位置?
- c# - c# UWP ReadTextAsync 2 次失败
- reactjs - 如何创建一个更短的可以处理多种动作类型的 redux-promise-middleware reducer 函数?
- android - 在 Android 上使用 Unity 读取嵌套的 JSON 文件
- docker - Openshift 命令以非零退出代码终止:在 Docker 容器中执行错误:137
- java - 忽略spring boot中未映射到对象中的json POJO字段
- haskell - 在 Haskell 中更改 getLine 异常的退出值
- spring-security - 具有多个grant_type的Spring Oauth2授权服务器用户信息端点不起作用
- java - recyclerview 活动中的 Recyclerview
- haskell - 除了 Control.Lens.Setter 在 Haskell 中实现 Observable 的方法是什么?