我是 javaSCript 的初学者,只是想知道为什么当它被称为“内部”循环和“外部”循环时结果会有所不同。for (var i = 0; i < 5; i++) {console.log(i);// prints 0 1 2 3 4 }console.log(i);// prints 0 1 2 3 4 5
3 回答
三国纷争
TA贡献1804条经验 获得超7个赞
因为for循环步骤是:
1 -定义一个变量,
2 -检查条件,
3-运行循环内的代码,
4 -并将循环变量值增加 1,
但!在定义变量后和第一个循环之后,它会忽略第一个参数var i = 0并将循环变量加 1,并检查条件,为什么?因为在for循环中,最后要做的就是将循环变量加1,
所以最后一个循环将循环变量增加1并检查条件,
简单地说:变量已通过循环更改为 5,因为在第一个循环之后它将变量增加 1 并检查条件
希望我的回答对你有用!
白衣非少年
TA贡献1155条经验 获得超0个赞
在循环内部,它记录从0
到的数字4
。最后一个i++
设置i
为5
,循环停止,因为i < 5
不再为真。然后console.log(i)
after 循环记录这个值。
潇潇雨雨
TA贡献1833条经验 获得超4个赞
这就是 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
添加回答
举报
0/150
提交
取消