未捕获的TypeError:无法读取未定义的属性“ forEach”(悬挂问题)

时间:2019-10-06 16:56:35

标签: javascript foreach undefined hoisting

这是我的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运行时引擎,初始化将在变量声明之后进行。

那我该如何解决这个问题?

0 个答案:

没有答案