求大神看看哪里错了,没输出

来源:7-16 随机数 random()

Mr丶Jia

2016-12-31 15:02

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Math </title>

<script type="text/javascript">

function math(){

    for(var i=1;i<=10;i++){

    var a1=Math.round((Math.random())*i);

}

return a1;

}

document.write(a1);

</script>

</head>

<body>

</body>

</html>


写回答 关注

5回答

  • qq_灰色头像_17
    2017-08-26 11:18:22

    //几个问题,1:    document.write(a1+"<br>");写到for循环里面

    //2:最后要运行函数

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Math </title>

    <script type="text/javascript">

    function math(){

        for(var i=1;i<=10;i++){

        var a1=Math.round((Math.random())*i);

        document.write(a1+"<br>");

    }


    }


    </script>

    </head>

    <body>

        <input type="button" value="运行" onclick="math()">

    </body>

    </html>


  • 小谢星
    2017-03-06 17:46:38

    先指出你没输出的原因:

    首先,js中作用域只有函数作用域和全局作用域;全局作用域是不能访问局部函数作用域的,而你的a1是定义在math函数里面的for语句里面,相当于math的局部变量,在外面是无法访问的。

    给你修改一下吧:

    function math(){

        var a1 = [];//定义一个数组对象,可以不定义长度,由后面代码决定开辟的空间

        for(var i=0;i<=10;i++){//这里从0开始,数组下标从0开始的

        a1[i]=Math.round((Math.random())*i);

    }

    return a1;

    }

    document.write(math());


  • 麻辣与辣条
    2017-01-22 15:22:33

    math方法定义好了,却没执行,然后就是a1,是个局部变量(ps: 被两个花括号括起来了),不能直接在外面直接输出。你可以试试把外面的a1换成math()。最后做随机数时可以这样简单些:Math.round(Math.random()*10)  也就这样,我也是新手,大家一起努力。

  • 溺荒
    2016-12-31 16:03:30

    除了楼上的问题,还有你是要返回一个数组吗?先用Array构造函数。如果不是数组的话,不需要for循环,给a1赋值10次毫无意义。

    Mr丶Jia 回复Mr丶Jia

    是要返回一个数组

    2017-01-01 14:08:24

    共 2 条回复 >

  • 陨落心
    2016-12-31 15:50:11

    先不说其他的,单单 你的a1定义在for循环内部,就是局部变量,但是你用在了外面(return a1),就肯定是underfined了。

JavaScript进阶篇

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

467382 学习 · 21877 问题

查看课程

相似问题