我正在尝试用 JavaScript 构建康威的生命游戏。我遇到的问题是边缘值和 undefined variable 。我将几个变量分配给给定正方形周围的正方形,如果该正方形位于边缘,这不可避免地会导致某些变量未定义。
在 JavaScript 控制台中,第 93 行显示无法读取 null 的属性“style”。我尝试这样解决这个问题:
if (typeof s1n1 === null) {
count += 0;
} else if (s1n1.style.backgroundColor === 'rgb(0, 0, 0)') {
count += 1;
}
基本上我想做的是,如果一个变量未定义,它会跳过它并且不向计数变量添加任何内容,然后转到下一个变量。然而,现在的编码方式不起作用。
最佳答案
if
block 总是被跳过,因为typeof s1n1 === null
总是 false。
所有typeof
操作的计算结果都是字符串,绝不会null
。具体来说,表达式 typeof null
的计算结果为字符串 'object'
。请参阅MDN article或搜索“javascript typeof”了解更多详细信息。
要检查null
,您应该只使用相等性。例如,if (s1n1 === null)
。
Here您的 fiddle 是否已根据该更改进行了更新?
关于javascript - 如何使用康威生命游戏中的边缘值解决此问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25279625/