这就是 var 在 JS 中的工作方式,也是所有语言中 for 循环的工作方式。当您使用 var 关键字声明变量时,它被提升到函数范围,或者如果不在函数内部,则为全局。这使您可以在 for 循环范围之外访问 var。尝试将 var 更改为 let 看看会发生什么。其次,由于您的条件,您没有在 for 循环中看到 5 打印i < 5。i++导致“i”从 4 变为 5,这打破了 for 循环条件,并且不打印“i”。最后 for 循环外的 console.log(i) 应该只打印 5 因为那是 i 在那个点的值而不是console.log(i);// prints 0 1 2 3 4 5// should print 5