关于JavaScript的for语句的问题?

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

for语句是一个前测试循环语句,也就是说只有当条件表达式“i<10”的返回为true的时候才会继续循环。

可是为什么在for语句外部访问i的时候,i的值是10呢?这是什么鬼?按常理来说结果应该是9啊,因为是前测试啊。

__blank
浏览 2237回答 5
5回答

飞奔的王麻子

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

儁破孩

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

叫我图图就好了

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

qq_阿集_0

首先你得知道i++是在什么时候执行的。这个for语句可以转化为var i=0; while(i<10) {     i;     i++;  }  alert(i);因为i是在最后在执行i++,所以出来的时候是10。而且javascript变量作用域的问题,for循环里面的i,外面也能访问,这点不像c++和java

安静_天空

for (int i = 0; i < 10; i++) {        int A = i;    }    alert(A);这样试试呢?正常来说是9没错的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript