【问题标题】:Help with adding variable to self and random number (javascript)帮助将变量添加到自我和随机数(javascript)
【发布时间】:2011-08-20 12:16:32
【问题描述】:

我正在制作一个简单的骰子滚轮,这对我来说似乎是一个不错的第一个项目,并且还可以帮助其他人学习 javascript,并且当您掷骰子(使用按钮)时,它应该会加到总数中(有一个清除按钮),但它显示的是 NaN。这是我的代码:

<html>
<body>
<script type="text/javascript">
function load()
{
document.getElementById("press").value=" "
var x=0
}
function d6()
{
var x=x+(Math.floor((Math.random() * 6) + 1));
document.getElementById("press").value=(x)
}
load()
</script>
<input type="button" value="Roll d6" onclick="d6()"/>
<input type="text" id="press"/>
</b>
<input type="button" value="Clear" onclick="load()"/>
</body>
</html>

我们将不胜感激。 谢谢!

【问题讨论】:

  • morgan w-k 而不是删除留给别人找,他们可能有同样的问题
  • 如果您有解决方案,您可以添加一个答案,说明如何使可能有相同问题的其他用户受益。当你自己弄清楚问题时删除问题不是 StackOverflow 的工作原理。

标签: javascript random nan dice


【解决方案1】:

在使用 JavaScript 时,考虑名称和值的范围很重要。考虑一下这之间的区别:

var x = 2;
function assignX(v) {
    x = v;
}
print(x); // 2 
assignX(3);
print(x); // 3

还有这个:

function assignX(v) {
    var x = v;
}
print(x); // undefined
assignX(3);
print(x); // undefined

在第一个示例中,x 存在于包含所有名称和值的全局范围内。在第二个示例中,x 仅存在于函数 assignX 中。

【讨论】:

    【解决方案2】:

    您的 x 变量是函数的本地变量。将x 更改为全局变量:

    var x;
    function load() { ... }
    function d6() { ... }
    

    【讨论】:

      【解决方案3】:

      这是因为在 d6() 中使用变量 x 时没有初始化它。 2个函数的作用域不同。

      你需要 x 是一个全局变量。为此,请使用以下代码结构:

      x = 0
      function load() { ... }
      function d6() { ... } 
      

      请记住,当您在声明变量之前使用关键字“var”时,该变量被视为本地变量。没有“var”的变量被认为是全局变量。

      【讨论】:

        猜你喜欢
        • 2016-09-15
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-19
        • 1970-01-01
        • 1970-01-01
        • 2011-01-03
        相关资源
        最近更新 更多