Mesuti, те интервалы что вы задаете в фукнциях setTimeout и setInterval имеют на самом деле приблизительные значения и им нельзя доверять если нужно засечь ровно 2 секунды например.
В современном вебе уже не имеет смысла использовать подобные библиотеки, когда у вас есть гораздо более современные и мощные инструменты вроде React, Vue, Angular и т.д.
Сергей Кореневский, так:
1. Const потому что пора переходить на ES6 в котором есть 2 вида переменных, const и let. Погуглите их
2. Я немного поправил ответ. Там вместо this, должен быть user. Но в целом никто не мешает деструктурировать user предварительно опять же с помощью ES6 https://www.frontender.info/es6-in-depth-destructuring/