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

关于JavaScript的for语句的问题?

关于JavaScript的for语句的问题?

__blank 2016-04-04 03:13:15
for (var i = 0; i < 10; i++) { i; } alert(i);for语句是一个前测试循环语句,也就是说只有当条件表达式“i<10”的返回为true的时候才会继续循环。可是为什么在for语句外部访问i的时候,i的值是10呢?这是什么鬼?按常理来说结果应该是9啊,因为是前测试啊。
查看完整描述

5 回答

已采纳
?
飞奔的王麻子

TA贡献12条经验 获得超5个赞


当i等于9的时候,程序会进入循环,执行循环完毕。然后会执行i++,此时i已经是10了,继续执行条件比较,不能满足条件,所以alert(i)才是10

查看完整回答
4 反对 回复 2016-04-04
  • __blank
    __blank
    恩,理解了,原来是我对条件式的执行顺序不清楚才会搞不懂啊。谢谢哦
?
儁破孩

TA贡献19条经验 获得超5个赞

9还是小于10,这个条件满足了。继续下一次循环,i = 10之后,10 不会小于10,就跳出循环了,此时i = 10

查看完整回答
反对 回复 2016-04-04
?
叫我图图就好了

TA贡献13条经验 获得超4个赞

等你执行到alert(i)的时候,for循环已经执行过了,i已经是10了

查看完整回答
反对 回复 2016-04-04
?
qq_阿集_0

TA贡献8条经验 获得超4个赞

首先你得知道i++是在什么时候执行的。这个for语句可以转化为

var i=0;
while(i<10)
{
    i;
    i++;
 }
 alert(i);

因为i是在最后在执行i++,所以出来的时候是10。而且javascript变量作用域的问题,for循环里面的i,外面也能访问,这点不像c++和java

查看完整回答
反对 回复 2016-04-04
  • 慕粉3135677
    慕粉3135677
    v是否广东省
  • 慕粉3135677
    慕粉3135677
    发v水电费
  • __blank
    __blank
    作用域这个搞好看到高程的这一段,能理解,当时唯一搞不懂的为什么是10。现在懂了,可惜只能选一个答案,谢谢你哦
点击展开后面2
?
安静_天空

TA贡献11条经验 获得超3个赞

for (int i = 0; i < 10; i++) {

        int A = i;

    }

    alert(A);

这样试试呢?正常来说是9没错的

查看完整回答
反对 回复 2016-04-04
  • 5 回答
  • 0 关注
  • 2236 浏览
慕课专栏
更多

添加回答

举报

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