Как я могу исправить эту проблему с границами в игре Конвея «Жизнь»?

Я пытаюсь создать «Игру жизни» Конвея на JavaScript. У меня проблема с краевыми значениями и неопределенными переменными. У меня есть несколько переменных, назначенных квадратам, окружающим данный квадрат, что неизбежно приводит к тому, что некоторые переменные не определены, если квадрат находится на краю.

В консоли JavaScript говорится, что в строке 93 он не может прочитать свойство style со значением null. Я попытался исправить эту проблему следующим образом:

if (typeof s1n1 === null) { 
count += 0; 
} else if (s1n1.style.backgroundColor === 'rgb(0, 0, 0)') { 
count += 1; 
} 

В основном то, что я пытаюсь сделать, - это если переменная не определена, она пропускает ее и ничего не добавляет к переменной count и переходит к следующей переменной. Однако способ кодирования сейчас не работает.

ссылка: http://jsfiddle.net/stalin666/mp8kx889/


person icedemon67    schedule 13.08.2014    source источник
comment
count += 0? Подумайте, что делает эта строка!   -  person CodingIntrigue    schedule 13.08.2014


Ответы (1)


Этот блок if всегда пропускается, потому что typeof s1n1 === null всегда ложно.

Все typeof операции оцениваются как строки, но никогда null. В частности, выражение typeof null оценивается как строка 'object'. См. статью о MDN или выполните поиск по запросу "javascript typeof " Больше подробностей.

Чтобы проверить null, вы должны просто использовать равенство. Пример, if (s1n1 === null).

Вот ваша скрипка, обновленная с учетом этого изменения.

person kdbanman    schedule 13.08.2014