-6

我已经编写了这个 javascript 函数,但它似乎不起作用。有人能告诉我哪里出错了吗?应该是对的,但是经过一番测试,生成数字位似乎有效,我认为它的 if 语句有问题。任何帮助,将不胜感激

<html>
    <head>
        <script>
            function myfunction()
            {
                var x=Math.floor((Math.random()*3)+1);
                myfunc();
            }

            function myfunc()
            {
                if (x == 1)
                {
                    document.write("1")
                }
                else if (x == 2)
                {
                    document.write("2")
                }
                else if (x == 3)
                {
                    document.write("3")
                }
            }
        </script>
    </head>
    <body>
        <button onclick="myfunction()">Click me</button>
    </body>
</html>
4

2 回答 2

7

像这样将 x 传递给您的函数..

var x=Math.floor((Math.random()*3)+1);
myFunc(x);

function myFunc(x) {
    //now you can use x
}
于 2013-05-21T19:29:57.523 回答
6

x不在范围内myfunc。它在范围内myfunction。您必须将其作为参数传递:

myfunc(x);

并修改 的定义myfunc

function myfunc(x)

此外,不需要if声明。document.write()无论如何将其参数转换为字符串,因此您可以这样做:

function myfunc(x) {
    document.write(x);
}

尽管如果您只是测试一些东西,请不要使用document.write. 改为使用console.log并打开您的 JS 控制台。它具有代码完成功能并且可以很好地处理对象。

于 2013-05-21T19:29:49.853 回答