在if语句中检查“undefined”时出现“undefined”错误

时间:2014-11-16 19:45:34

标签: javascript

我是javascript的新手,我正在开发俄罗斯方块游戏。我写了一些代码并重用了其他网站的一些代码。但其中一个功能是给我带来了一些问题,而且我得到了一个错误,因为" undefined不是评估板[y] [x]"的对象。这段代码粘贴在下面:

var COLS=10, ROWS=20;
var board = [];
function run() {
ctx.clearRect( 0, 0, canvas.width, canvas.height );

ctx.strokeStyle = 'black';
for ( var x = 0; x < COLS; ++x ) {
    for ( var y = 0; y < ROWS; ++y ) {
        if ( board[ y ][ x ] ) {
            ctx.fillStyle = colors[ board[ y ][ x ] - 1 ];
            drawBlock( x, y );
        }
    }
}
}

我不理解为什么我会收到错误。我尝试在safari和IE 11中执行它,但结果是一样的。我甚至尝试在if语句中使用typeof关键字,但没有变化。任何人都可以帮我摆脱这个错误。

感谢

1 个答案:

答案 0 :(得分:1)

如果您尚未正确初始化board[ y ][ x ]变量,则无法执行board。 您正在尝试执行下一行:

board [0][0]

以及javascript会做什么,首先它会尝试获取board[0] undefined,然后它会尝试undefined[0],这会触发错误:< / p>

  

undefined不是对象

在运行该循环之前,您应首先将一些数据放入board数组中。