为了账号安全,请及时绑定邮箱和手机立即绑定

(javaScript)值进出'for循环'

(javaScript)值进出'for循环'

弑天下 2022-11-11 14:42:24
我是 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 并检查条件

希望我的回答对你有用!


查看完整回答
反对 回复 2022-11-11
?
白衣非少年

TA贡献1155条经验 获得超0个赞

在循环内部,它记录从0到的数字4。最后一个i++设置i5,循环停止,因为i < 5不再为真。然后console.log(i)after 循环记录这个值。



查看完整回答
反对 回复 2022-11-11
?
潇潇雨雨

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 


查看完整回答
反对 回复 2022-11-11
  • 3 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信