帮助将变量添加到self和random number(javascript)
我正在制作一个简单的掷骰子游戏,这对我来说似乎是一个不错的第一个项目,也可以帮助其他人学习javascript。当你掷骰子(有一个按钮)时,它应该加到总数中(有一个清晰的按钮),但上面写着NaN。这是我的密码:帮助将变量添加到self和random number(javascript),javascript,random,nan,dice,Javascript,Random,Nan,Dice,我正在制作一个简单的掷骰子游戏,这对我来说似乎是一个不错的第一个项目,也可以帮助其他人学习javascript。当你掷骰子(有一个按钮)时,它应该加到总数中(有一个清晰的按钮),但上面写着NaN。这是我的密码: <html> <body> <script type="text/javascript"> function load() { document.getElementById("press").value=" " var x=0 } function
<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>
函数加载()
{
document.getElementById(“按”).value=“”
变量x=0
}
函数d6()
{
VarX=x+(数学地板((数学随机()*6)+1));
document.getElementById(“press”).value=(x)
}
加载()
我会非常感激你的帮助。
谢谢 之所以发生这种情况,是因为在d6()中使用变量x时没有初始化它。这两个功能的范围不同 你需要x是一个全局变量。为此,请使用以下代码结构:
x = 0
function load() { ... }
function d6() { ... }
请记住,当您声明一个前面带有关键字“var”的变量时,该变量被视为局部变量。没有“var”的变量被视为全局变量。您的
x
变量是函数的局部变量。将x
更改为全局变量:
var x;
function load() { ... }
function d6() { ... }
当使用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
仅存在于函数assignXmorgan w-k中,而不是删除。将其留给其他人查找,他们可能有相同的问题如果您有解决方案,您可以添加一个答案,说明如何使可能有相同问题的其他用户受益。当你自己弄明白这个问题时,删除它并不是StackOverflow的工作原理。