【发布时间】:2019-02-01 16:19:37
【问题描述】:
console.log(i);
for(var i=0;i<2;i++){
console.log(i);
}
这在浏览器中显示了一些意外的输出。谁能解释一下? 输出是:
它在不同的控制台上实际上是完全不同的。 Mozilla 文档是这样说的:
// myVarVariable 是在这里可见
for (var myVarVariable = 0; myVarVariable // myVarVariable 对整个函数可见 }
// myVarVariable 是在这里可见
【问题讨论】:
-
“意外”部分到底是什么?
-
问题是什么?它的行为似乎与我预期的完全一样——你得到
undefined,然后是0,然后是1。 应该发生什么? -
JavaScript loop variable scope 的可能重复项 - 嗯。这实际上可能已经过时了。
let似乎反驳了这个答案,但对于 OP 正在使用的当前实现,它是正确的。 -
@RaghavMaheshwari
i在for循环之前可用。 赋值 不是。文档是正确的 - 它涵盖了 变量 的可见性,而不是分配。 -
我得到
undefined、1、0。我从这里复制粘贴了你的整个 sn-p 作为运行的单个代码。
标签: javascript