Все просто.
undefined и null это 2 специальных типа данных. они равны только друг другу при == (не строгом сравнении) и не равны ничему более.
NaN - то есть not a number(не число).(Я думаю все и так ясно). Появляется при ошибки в вычислениях.
let num = "Hi" * 12;
console.log(num) // NaN
Можешь почитать: https://learn.javascript.ru/types https://learn.javascript.ru/type-conversions
Вам скорее всего подойдет elem.insertAdjacentHTML(where, html) https://learn.javascript.ru/modifying-document#ins...
Предупреждаю, что если вы не 100% уверены в этом материале и он может быть подменен пользователем то такой метод использовать ни в коем случае нельзя
Можно получить стартовую дату на момент начала и сохранить ее в константе и просто высчитывать сколько прошло время от этой константы и соответственно вычитать цену.