Подними var res к другим var
Ошибки не будет, потому что
Переменные, объявленные через var считываются интерпретатором при парсинге, сохраняются в той области видимости, где были определены и инициализируются значением undefined. И только во время выполнения кода этим переменным присваиваются значения, заданные в самой программе.