变量放在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 = [];

           
            }http://img.mukewang.com/climg/5d40cf0900014a5605250177.jpg


            for (var i = 0;i<10;i++){
                arr[i] = Math.ceil(Math.random()*100);
            }
                document.write(arr);

http://img.mukewang.com/climg/5d40cf730001ba1f03090054.jpg

写回答

2回答

好帮手慕慕子

2019-07-31

同学你好, 说的这两种方式是下图所示的两种方式吗?

http://img.mukewang.com/climg/5d40f69c0001034a08950451.jpg

如果是这样的话, 那么可以参考下面的解析理解

  1. 第一段代码,在for循环内部声明数组, 导致每次循环, 数组都会重新声明为空数组, 最终数组中只存入一个值, 就是循环结束时的值。但是因为i的值在增加,导致数组的长度会增加,前面没有值的元素对应的为空。

    由于你在循环中输出结果,才会出现每循环一次就输出一次, 出现你截图的这种情况, 可以尝试在for循环外输出, 就可以清楚的看出数组中只有一个值, 其他的都为空 

    http://img.mukewang.com/climg/5d40f83e00018d3608370170.jpg

    打印结果

    http://img.mukewang.com/climg/5d40f8500001c1f101930063.jpg

  2. 第二段代码, 在外部声明的变量, 每次循环都会将随机数存入数组,所以数组中每一个项对应的都有值

综上, 在for循环内部声明变量,每循环一次,变量都会被重新声明一次, 但是在for循环外部声明的变量只被声明一次。

如果不是指这里, 建议: 可以再次提问, 我们会继续为你解答的。

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

0

慕盖茨6251851

提问者

2019-07-31

不好意思,粘贴图片把代码搞乱了,没找到撤销。两个代码,一个在For循环内部申明变量,一个在外部申明变量。

0

0 学习 · 40143 问题

查看课程