关于javascript变量作用域的问题

这是一段声称7位数随机数的代码;当var arr =  [ ];  var newArr = [ ]; 这两个变量为全局变量的时候,每次触发点击事件,oDiv.innerHTML的结果都会在页面累加;但是当这两个变量为函数局部变量的时候,每次就可以只正常显示7个随机数。请大神解惑,谢谢啦~

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">
    window.onload=function(){
        //获取元素input
        var oBtn = document.getElementById('btn');
        //获取元素div
        var oDiv = document.getElementById('div1');
        //声明两个空数组
        /*var arr = [];
        var newArr = [];*/
        //给按钮添加事件,执行函数randomNum。
        oBtn.onclick = function(){
            oDiv.innerHTML = randomNum(35,7);
        };

        function randomNum(iAll,iNum){
            var arr = [];
            var newArr = [];
            for(var i=1;i<=iAll;i++){
                arr.push(i); //  arr:1~35
            }
            for(var i=1;i<=iNum;i++){
                //获取7个随机数
                var num = arr.splice(Math.floor(Math.random()*arr.length),1);        
                newArr.push(num);    
            }
            //返回包含7个随机数的数组
            return newArr;
        };
    };
    </script>
</head>
<body>
<input id="btn" type="button" value="生成随机数">
<div id="div1"></div>
</body>
</html>

夏天的夏7
浏览 1172回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript