JS变量引用错误

时间:2017-10-28 19:34:12

标签: javascript

我正在编写一个简单的原生js应用程序似乎可以工作,但我注意到一些有趣的事情,而我在浏览器中踩过debuger enter image description here

它说我的var id没有定义?我明白我的意思是我希望在控制台中看到这个,但在调试器中?

var playerScore = [0,0];
var player = 0;
var score = 0;
var troll = 0;

function rollDice() {
  var dice = 0;
  dice = Math.floor((Math.random() * 6) + 1);
  return dice;
}

function playerTurn() {
  player === 0 ? player = 1 : player = 0;
  // score = 0;
}

function turnScore() {
  rollDice() !== 1 ? score += rollDice() : playerTurn();
  return score;
}

function gameScore() {
  troll = playerScore[player] += turnScore();
  return troll
}

document.getElementById('rollDice').addEventListener('click', function () {
    document.getElementById('round-score-' + player).innerHTML = turnScore();
});
document.getElementById('saveScore').addEventListener('click', function () {
    document.getElementById('score-' + player).innerHTML = gameScore();
});
document.getElementById('newGame').addEventListener('click', function () {
    document.getElementById('score-0').textContent = '0';
    document.getElementById('score-1').textContent = '0';
    document.getElementById('round-score-0').textContent = '0';
    document.getElementById('round-score-1').textContent = '0';
});

有人可以解释发生了什么吗

1 个答案:

答案 0 :(得分:0)

如果您没有调用rollDice(),则骰子不会声明和初始化。如果你调用rollDice()函数,你可以从它的范围调用dice范围dice是一个局部变量,它只能在rollDice()函数中访问。使用以下来获取返回值

var anotherVariable = rollDice();