变量放在for循环内部和外部区别。
来源:4-7 选择练习
慕盖茨6251851
2019-07-31 07:15:06
for (var i = 0;i<10;i++){
var arr = [];
arr[i] = Math.ceil(Math.random()*100);
document.write(arr);//为什么这么多....... var arr = [];
for (var i = 0;i<10;i++){
arr[i] = Math.ceil(Math.random()*100);
}
document.write(arr);
var arr = [];
}
for (var i = 0;i<10;i++){
arr[i] = Math.ceil(Math.random()*100);
}
document.write(arr);
2回答
好帮手慕慕子
2019-07-31
同学你好, 说的这两种方式是下图所示的两种方式吗?
如果是这样的话, 那么可以参考下面的解析理解
第一段代码,在for循环内部声明数组, 导致每次循环, 数组都会重新声明为空数组, 最终数组中只存入一个值, 就是循环结束时的值。但是因为i的值在增加,导致数组的长度会增加,前面没有值的元素对应的为空。
由于你在循环中输出结果,才会出现每循环一次就输出一次, 出现你截图的这种情况, 可以尝试在for循环外输出, 就可以清楚的看出数组中只有一个值, 其他的都为空
打印结果
第二段代码, 在外部声明的变量, 每次循环都会将随机数存入数组,所以数组中每一个项对应的都有值
综上, 在for循环内部声明变量,每循环一次,变量都会被重新声明一次, 但是在for循环外部声明的变量只被声明一次。
如果不是指这里, 建议: 可以再次提问, 我们会继续为你解答的。
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
慕盖茨6251851
提问者
2019-07-31
不好意思,粘贴图片把代码搞乱了,没找到撤销。两个代码,一个在For循环内部申明变量,一个在外部申明变量。
相似问题