这是我的JS小提琴的链接:https://jsfiddle.net/apasric4/75qmxkhd/1/ 这是引起我麻烦的代码:
let scores=[0,0]
let activePlayer=0;
let roundScore=0;
let gamePlay=false;
let p0G,p1G,p0R,p1R;
p0G=document.querySelector('#score-0')
p1G=document.querySelector('#score-1')
p0R=document.querySelector('#current-0')
p1R=document.querySelector('#current-1')
const p0Panel=document.querySelector('.player-0-panel')
const p1Panel=document.querySelector('.player-1-panel')
const btnNew=document.querySelector('.btn-new')
const btnRoll=document.querySelector('.btn-roll')
const btnHold=document.querySelector('.btn-hold')
const diceDisplay=document.querySelector('.dice')
init()
function init() {
roundScore=0;
scores=[0,0]
[p0G, p1G, p0R, p1R].forEach(el=> {
el.innerHTML=roundScore;
})
diceDisplay.style.display="none"
gamePlay=true;
}
我觉得这是由于功能提升。变量和函数声明位于顶部,因此init遍历已声明但尚未初始化的变量,因为对于Javascript运行时引擎,初始化将在变量声明之后进行。
那我该如何解决这个问题?