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

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

<!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 回答

//几个问题,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>


0 回复 有任何疑惑可以回复我~

先指出你没输出的原因:

首先,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());


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

Mr丶Jia 提问者

怎么构造函数
2017-01-01 回复 有任何疑惑可以回复我~
#2

Mr丶Jia 提问者 回复 Mr丶Jia 提问者

是要返回一个数组
2017-01-01 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

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