如何修复此 TicTacToe 的未捕获引用错误

How do I fix an uncaught reference error for this TicTacToe

我正在做一个 HTML、CSS、JSS tictactoe 项目,我 运行 进入控制台 ribbon/section 的错误(当右键单击并转到在浏览器中“检查”)在我尝试在我的文本编辑器中使用 console.log 时说明了以下内容:


“未捕获的 ReferenceError:topLeft 未定义”
if (topLeft && topLeft === topMiddle && topLeft === topRight) {

我的代码:

             // HTML Elements
const statusDiv = document.querySelector('.status');
const resetDiv = document.querySelector('.reset');
const cellDivs = document.querySelectorAll('.game-cell');
//NEW querySelecterAll <= will grab every occurrence put in ('') 
//Grabbing statusDiv to manipulate it (change when it'll x or o's turn)

            //Game Variables
let gameIsLive = true; 
//statement would be false if someone won/ game ended 
let xIsNext = true; 
//meaning if it's T = x's turn, if it's F = O's turn

           // Functions
const checkGameStatus = () => {
const topLeft = cellDivs[0].classList[2];
const topMiddle = cellDivs[1].classList[2];
const topRight = cellDivs[2].classList[2];
const middleLeft = cellDivs[3].classList[2];
const middleMiddle = cellDivs[4].classList[2];
const middleRight = cellDivs[5].classList[2];
const bottomLeft = cellDivs[6].classList[2];
const bottomMiddle = cellDivs[7].classList[2];
const bottomRight = cellDivs[8].classList[2];
}

           // Check Winner
if (topLeft && topLeft === topMiddle && topLeft === topRight) { 
console.log(topLeft);
}

我做的代码好像和视频一样,所以我不确定为什么会收到这个错误。

参考资料

教程中的人有自己的 GitHub,代码为 enter link description here

这将是我目前在流程中所处的位置 enter link description here

我之前发过类似的问题,这是我第一次关闭问题。有点担心它可能会再次关闭,所以请让我知道我的问题中哪一部分做错了。

您的问题与 block scoping 有关。您在此块中声明变量:

const checkGameStatus = () => {
  const topLeft = cellDivs[0].classList[2];
  [...]
}

但是您试图访问块外的变量,而这些变量不存在。

而是在块外初始化变量,然后赋值:

let topLeft;

const checkGameStatus = () => {
  topLeft = cellDivs[0].classList[2];
  [...]
}

checkGameStatus()

if (topLeft && topLeft === topMiddle && topLeft === topRight) { 
  console.log(topLeft);
}