javascript如果功能,我做错了什么?

Ham*_*lik -5 javascript if-statement

我写了这个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>
Run Code Online (Sandbox Code Playgroud)

tym*_*eJV 7

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

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

function myFunc(x) {
    //now you can use x
}
Run Code Online (Sandbox Code Playgroud)


Ble*_*der 6

x不在范围内myfunc.它属于范围myfunction.你必须把它作为一个参数传递:

myfunc(x);
Run Code Online (Sandbox Code Playgroud)

并修改以下定义myfunc:

function myfunc(x)
Run Code Online (Sandbox Code Playgroud)

此外,没有必要if声明.document.write()无论如何将其参数转换为字符串,所以你可以这样做:

function myfunc(x) {
    document.write(x);
}
Run Code Online (Sandbox Code Playgroud)

虽然如果你只是测试东西,不要使用document.write.请改用console.log并打开JS控制台.它具有代码完成功能,可以很好地处理对象.