我想知道为什么我收到消息:'未捕获的ReferenceError:d1未定义'在控制台
我想将骰子卷添加到数组中。
这是我的代码:
<html>
<head>
<script>
var diceRolls = [];
diceRolls.push(d1);
if (diceRolls[diceRolls.length - 1] === d1) {
console.log("Je hebt 5 punten gewonnen!");
}
function rollDice() {
var die1 = document.getElementById("die1");
var status = document.getElementById("status");
var d1 = Math.floor(Math.random()*6) +1;
console.log("You rolled "+d1+".");
}
</script>
</head>
<body>
<div id="die1" class="dice">0</div>
<button onclick="rollDice()"> Roll the dice </button>
<h2 id="status" style="clear:left":> </h2>
</body>
答案 0 :(得分:2)
当您尚未初始化d1
时,脚本的第二行是尝试将diceRolls
推送到d1
。您必须在脚本的其余部分上方声明rollDice()
,然后调用它以将值推送到diceRolls
。
我想你可能想尝试这些方面的东西吗?
var diceRolls = [];
function rollDice() {
var die1 = document.getElementById("die1");
var status = document.getElementById("status");
var d1 = Math.floor(Math.random()*6) +1;
console.log("You rolled "+d1+".");
diceRolls.push(d1);
}
if (diceRolls[diceRolls.length - 1] === d1) {
console.log("Je hebt 5 punten gewonnen!");
}
答案 1 :(得分:1)
diceRolls.push(d1);
在浏览器到达此行时,尚未设置d1。我想如果你把它扔进rollDice函数,你会得到你想要的东西。换句话说:
function rollDice() {
var die1 = document.getElementById("die1");
var status = document.getElementById("status");
var d1 = Math.floor(Math.random()*6) +1;
console.log("You rolled "+d1+".");
diceRolls.push(d1);
}
编辑:AVP击败了我大约30秒,他得到了我的投票。