0
ちょうどJS学ぼうと、いくつかのミニゲームロジックを書く機能はありませんが、contantleyはjsの取得中にエラーキャッチされない例外TypeErrorは:roundScoreは
Uncaught TypeError: roundScore is not a function
は私が持っているかのように、これはある理由を確認してくださいすることはありません、このエラーが発生しますので、私はこだわっています問題の機能:
var playerScore = 0;
var player = 0;
var roundScore = 0;
function rollDice() {
var dice;
dice = Math.floor((Math.random() * 6) + 1);
return dice;
}
function playerTurn() {
player === 0 ? player = 1 : player = 0;
}
function roundScore() {
rollDice() !== 1 ? roundScore += rollDice() : (playerTurn(), roundScore = 0);
return roundScore;
}
document.getElementById('rollDice').addEventListener('click', function() {
document.getElementById('round-score-' + player).innerHTML = roundScore();
});
なぜこのエラーが発生しているのですか? thx
:)良いキャッチ、愚かな間違いで迷惑を掛けてくれてありがとう – John
jsがコンパイルするときに関数と変数がファイルの先頭にぶら下がりますが、それはホイストの変数を上回る関数です..?ホイストが起こったときにすべてが 'undefined 'に設定されていると思います。 – John
変数と関数の両方がスコープの上部に吊り上げられますが、関数は常に最上部にあります。あなたが 'js hoisting'のいくつかのバリエーションをgoogleするなら、これに関する記事がたくさんあります。ここに1つあります:https://scotch.io/tutorials/understanding-hoisting-in-javascript – shadymoses