Мариана Марианова, не хватает знаний - ну так пополняйте их. Читаете что такое деструктурирующее присваивание, что такое шаблонные строки. И переписываете код. Ну или как в соседнем ответе советуют - используйте babel (хотя, если вы не способны разобраться с такими элементарными вещами, есть повод задуматься - а стоит ли вообще заниматься программированием).
"Требуется преобразовать число" - повторяю, не обязательно число. Это может быть что угодно - строка, объект, null... Если значение должно быть целым числом, но вы не уверены, что оно действительно целое и/или является числом - можно применить побитовый оператор и получить целое число.
"Всегда" - не обязательно. Просто это короче, чем явно проверять тип значения, вызывать parseInt и т.д.
Ingernirated, что значит "так"? Вы понимаете, что делает setTimeout? Выполняет переданную функцию не ранее чем через указанный промежуток времени. Вы функцию не передавали, вы её выполняли сразу же.
Alexey10, во-первых, если выкладываете код - оформляйте его как код, для этого есть соответствующий тэг.
Во-вторых - под "не так" вы имеете в виду (наверное) "работает не так, как я ожидаю". И при этом вы не говорите, что конкретно с не так с результатами работы. Предлагаете мне догадаться? Что же, один раз я попробую, но на будущее - подобные вопросы лично я игнорирую, нет подробностей - нет и ответа.
Вы при повторной инициализации указываете в качестве даты то же самое значение, что и в первый раз, а эта дата уже в прошлом, так что... Создавайте новую дату, по ссылке в моём предыдущем комментарии - там же функция, которая создаёт новую дату, неужели не заметили?