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

关于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>


正在回答

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468289    人
  • 解答问题       21893    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于javascript作用域的问题~请大神解惑~~

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信